开源 - Ideal库 - 常用时间转换扩展方法(一)
从事软件开发这么多年,平时也积累了一些方便自己快速开发的帮助类,一直在想着以什么方式分享出来,因此有了这个系列文章,后面我将以《开源-Ideal库》系列文章分享一些我认为比较成熟、比较方便、比较好的代码,如果感觉有借鉴的地方可以集成到自己的公共代码库中,同时我也会以Nuget包的方式发布出来,以供直接下载使用。

主要包括:公共、文档、ORM、SqlSugar、定时任务、Redis、Mqtt、SignalR等库封装,后面可能还会适当删减。
今天我们将分享公共库中关于时间转换的相关封装,主要是关于本地与UTC的日期、时间与时间戳和字符串之间的相互转换。
01、日期时间转时间戳(秒)
该方法是把日期时间DateTime转成10位时间戳,即秒级时间戳,代码如下:
/// <summary>
/// 日期时间转时间戳(秒)
/// </summary>
/// <param name="dateTime">日期时间</param>
/// <returns>时间戳(秒)</returns>
public static long ToUnixTimestampBySeconds(this DateTime dateTime)
{
var dto = new DateTimeOffset(dateTime);
return dto.ToUnixTimeSeconds();
}
02、日期时间转时间戳(毫秒)
该方法是把日期时间DateTime转为13位时间戳,即毫秒级时间戳,代码如下:
/// <summary>
/// 日期时间转时间戳(毫秒)
/// </summary>
/// <param name="dateTime">日期时间</param>
/// <returns>时间戳(毫秒)</returns>
public static long ToUnixTimestampByMilliseconds(this DateTime dateTime)
{
var dto = new DateTimeOffset(dateTime);
return dto.ToUnixTimeMilliseconds();
}
03、时间戳(秒)转本地日期时间
该方法是把10位秒级时间戳转为本地日期时间DateTime,代码如下:
/// <summary>
/// 时间戳(秒)转本地日期时间
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>本地日期时间</returns>
public static DateTime ToLocalTimeDateTimeBySeconds(this long timestamp)
{
var dto = DateTimeOffset.FromUnixTimeSeconds(timestamp);
return dto.ToLocalTime().DateTime;
}
04、时间戳(毫秒)转本地日期时间
该方法是把13位毫秒级时间戳转为本地日期时间DateTime,代码如下:
/// <summary>
/// 时间戳(毫秒)转本地日期时间
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>本地日期时间</returns>
public static DateTime ToLocalTimeDateTimeByMilliseconds(this long timestamp)
{
var dto = DateTimeOffset.FromUnixTimeMilliseconds(timestamp);
return dto.ToLocalTime().DateTime;
}
05、时间戳(秒)转UTC日期时间
该方法是把10位秒级时间戳转为UTC日期时间DateTime,代码如下:
/// <summary>
/// 时间戳(秒)转UTC日期时间
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>UTC日期时间</returns>
public static DateTime ToUniversalTimeDateTimeBySeconds(this long timestamp)
{
var dto = DateTimeOffset.FromUnixTimeSeconds(timestamp);
return dto.ToUniversalTime().DateTime;
}
06、时间戳(毫秒)转UTC日期时间
该方法是把13位毫秒级时间戳转为UTC日期时间DateTime,代码如下:
/// <summary>
/// 时间戳(毫秒)转UTC日期时间
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>UTC日期时间</returns>
public static DateTime ToUniversalTimeDateTimeByMilliseconds(this long timestamp)
{
var dto = DateTimeOffset.FromUnixTimeMilliseconds(timestamp);
return dto.ToUniversalTime().DateTime;
}
07、时间戳(秒)转本地日期
该方法是把10位秒级时间戳转为本地日期DateOnly,代码如下:
/// <summary>
/// 时间戳(秒)转本地日期
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>本地日期</returns>
public static DateOnly ToLocalTimeDateBySeconds(this long timestamp)
{
var dt = timestamp.ToLocalTimeDateTimeBySeconds();
return DateOnly.FromDateTime(dt);
}
08、时间戳(毫秒)转本地日期
该方法是把13位毫秒级时间戳转为本地日期DateOnly,代码如下:
/// <summary>
/// 时间戳(毫秒)转本地日期
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>本地日期</returns>
public static DateOnly ToLocalTimeDateByMilliseconds(this long timestamp)
{
var dt = timestamp.ToLocalTimeDateTimeByMilliseconds();
return DateOnly.FromDateTime(dt);
}
09、时间戳(秒)转UTC日期
该方法是把10位秒级时间戳转为UTC日期DateOnly,代码如下:
/// <summary>
/// 时间戳(秒)转UTC日期
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>UTC日期</returns>
public static DateOnly ToUniversalTimeDateBySeconds(this long timestamp)
{
var dt = timestamp.ToUniversalTimeDateTimeBySeconds();
return DateOnly.FromDateTime(dt);
}
10、时间戳(毫秒)转UTC日期
该方法是把13位毫秒级时间戳转为UTC日期DateOnly,代码如下:
/// <summary>
/// 时间戳(毫秒)转UTC日期
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>UTC日期</returns>
public static DateOnly ToUniversalTimeDateByMilliseconds(this long timestamp)
{
var dt = timestamp.ToUniversalTimeDateTimeByMilliseconds();
return DateOnly.FromDateTime(dt);
}
11、时间戳(秒)转本地时间
该方法是把10位秒级时间戳转为本地时间TimeOnly,代码如下:
/// <summary>
/// 时间戳(秒)转本地时间
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>本地时间</returns>
public static TimeOnly ToLocalTimeTimeBySeconds(this long timestamp)
{
var dt = timestamp.ToLocalTimeDateTimeBySeconds();
return TimeOnly.FromDateTime(dt);
}
12、时间戳(毫秒)转本地时间
该方法是把13位毫秒级时间戳转为本地时间TimeOnly,代码如下:
/// <summary>
/// 时间戳(毫秒)转本地时间
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>本地时间</returns>
public static TimeOnly ToLocalTimeTimeByMilliseconds(this long timestamp)
{
var dt = timestamp.ToLocalTimeDateTimeByMilliseconds();
return TimeOnly.FromDateTime(dt);
}
13、时间戳(秒)转UTC时间
该方法是把10位秒级时间戳转为UTC时间TimeOnly,代码如下:
/// <summary>
/// 时间戳(秒)转UTC时间
/// </summary>
/// <param name="timestamp">时间戳(秒)</param>
/// <returns>UTC时间</returns>
public static TimeOnly ToUniversalTimeTimeBySeconds(this long timestamp)
{
var dt = timestamp.ToUniversalTimeDateTimeBySeconds();
return TimeOnly.FromDateTime(dt);
}
14、时间戳(毫秒)转UTC时间
该方法是把13位毫秒级时间戳转为UTC时间TimeOnly,代码如下:
/// <summary>
/// 时间戳(毫秒)转UTC时间
/// </summary>
/// <param name="timestamp">时间戳(毫秒)</param>
/// <returns>UTC时间</returns>
public static TimeOnly ToUniversalTimeTimeByMilliseconds(this long timestamp)
{
var dt = timestamp.ToUniversalTimeDateTimeByMilliseconds();
return TimeOnly.FromDateTime(dt);
}
15、字符串转日期时间,转换失败则返回空
该方法是把字符串转为日期时间DateTime,转换失败则返回空,具体代码如下:
/// <summary>
/// 字符串转日期时间,转换失败则返回空
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <returns>日期时间</returns>
public static DateTime? ToDateTime(this string source)
{
if (DateTime.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return default;
}
16、字符串转日期时间,转换失败则返回默认日期时间
该方法是把字符串转为日期时间DateTime,转换失败则返回默认日期时间,具体代码如下:
/// <summary>
/// 字符串转日期时间,转换失败则返回默认值
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <param name="dateTime">默认日期时间</param>
/// <returns>日期时间</returns>
public static DateTime ToDateTimeOrDefault(this string source, DateTime dateTime)
{
if (DateTime.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return dateTime;
}
17、字符串转日期,转换失败则返回空
该方法是把字符串转为日期DateOnly,转换失败则返回空,具体代码如下:
/// <summary>
/// 字符串转日期,转换失败则返回空
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <returns>日期</returns>
public static DateOnly? ToDateOnly(this string source)
{
if (DateOnly.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return default;
}
18、字符串转日期,转换失败则返回默认日期
该方法是把字符串转为日期DateOnly,转换失败则返回默日期,具体代码如下:
/// <summary>
/// 字符串转日期,转换失败则返回默认日期
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <param name="dateOnly">默认日期</param>
/// <returns>日期</returns>
public static DateOnly ToDateOnlyOrDefault(this string source, DateOnly dateOnly)
{
if (DateOnly.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return dateOnly;
}
19、字符串转时间,转换失败则返回空
该方法是把字符串转为日期TimeOnly,转换失败则返回空,具体代码如下:
/// <summary>
/// 字符串转时间,转换失败则返回空
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <returns>时间</returns>
public static TimeOnly? ToTimeOnly(this string source)
{
if (TimeOnly.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return default;
}
20、字符串转时间,转换失败则返回默认时间
该方法是把字符串转为日期TimeOnly,转换失败则返回默认时间,具体代码如下:
/// <summary>
/// 字符串转时间,转换失败则返回默认时间
/// </summary>
/// <param name="source">需转换的字符串</param>
/// <param name="timeOnly">默认时间</param>
/// <returns>时间</returns>
public static TimeOnly ToTimeOnlyOrDefault(this string source, TimeOnly timeOnly)
{
if (TimeOnly.TryParse(source, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
{
return date;
}
return timeOnly;
}
稍晚些时候我会把库上传至Nuget上,大家可以搜索Ideal.Core.Common直接使用。
注:测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。https://gitee.com/hugogoos/Ideal
开源 - Ideal库 - 常用时间转换扩展方法(一)的更多相关文章
- C# 一些常用的字符串扩展方法
以下可能是常用的.net扩展方法,记录下 EString.cs文件 /// <summary> /// 扩展字符串类 /// </summary> public static ...
- ES6 模版字符串及常用的es6扩展方法
1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb' ...
- 开源且功能强大的C# 扩展方法类库Pure.Ext,包含1000+个拓展方法 (支持.Net Framework和.Net Core)
先上地址 Github: https://github.com/purestackorg/pure.ext Gitee: https://gitee.com/purestack/pure.ext 扩展 ...
- android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
转载请注明本文出处:http://blog.csdn.net/wingichoy/article/details/50428246 MPChart是android上一款强大的图表开源库,他可以轻松的绘 ...
- python3 5月26日 time模块常用时间转换 &datetime()模块学习 random()
import time 获取当前时间: 指定字符串格式:time.strftime("%Y-%m-%d %H:%M:%S") 当前时间戳:time.time() 当前时间元组格式 ...
- linux c++ 加载动态库常用的三种方法
链接库时的搜索路径顺序:LD_LIBRARY_PATH --> /etc/ld.so.conf --> /lib,/usr/lib 方法1. vi .bash_profile 设置环 ...
- python 爬虫数据处理字符串时间转换格式方法
startDate = "2018-10-01"endDate = "2018-10-31" ###字符转化为日期startTime = datetime.da ...
- Python常用时间转换
1 import time 2 import math 3 4 # 定义一些时间段的常量(秒) 5 TimeSec_Hour = 3600 6 TimeSec_Day = 86400 7 TimeSe ...
- Sql 常用时间转换
CONVERT(varchar(100), GETDATE(), 0); -- 08 31 2015 04:57PM CONVERT(varchar(100), GETDATE(), 20); --2 ...
- js常用时间转换函数
1.秒转换为时分秒 // 秒转换为时分秒 export function secExchangeMoment(value = 0){ let secondTime = parseInt(value); ...
随机推荐
- 023.Ubuntu常见个性化配置
root登录设置 ubuntu默认关闭了root账户,可根据实际情况开启或关闭root登录. ubuntu@localhost:~$ sudo apt install openssh-server u ...
- css移动端适配方法
一:前端开发的常用单位 1.像素(px) 1.什么是像素(Pixel)? 在前端开发中视口的水平方向和垂直方向是由很多小方格组成的, 一个小方格就是一个像素 例如div尺寸是1 ...
- 在DLL中封装模板类的问题
在Dll中封装类是用定义一个宏来区分导出标识的 #ifdef DLLCLASS_EXPORTS #define DLL_CLASS _declspec(dllexport) //Dll #else # ...
- 22.11.20 ICPC合肥站 打星记录
A,B,H签到. B题:注意区分相对误差与绝对误差!!小数相对误差小于1e-6,至少要输出十二位! G题优先队列.场上十几分钟就想出来了,表扬自己一波,留个坑位写题解. M题情况不多直接暴搜, 最后一 ...
- 零基础学习人工智能—Python—Pytorch学习(九)
前言 本文主要介绍卷积神经网络的使用的下半部分. 另外,上篇文章增加了一点代码注释,主要是解释(w-f+2p)/s+1这个公式的使用. 所以,要是这篇文章的代码看不太懂,可以翻一下上篇文章. 代码实现 ...
- Ubuntu 设置 FTP 服务
安装 VSFTP 服务 sudo apt install vsftpd 检查配置文件 sudo vim /etc/vsftpd.conf 确保以下配置项正确: #禁止匿名访问 anonymous_en ...
- IDEA 2023.2 最新安装使用教程(附激活码,亲测好用)
申明:本教程 IDEA 补丁.补丁均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除.若条件允许,希望大家购买正版 ! idea激活码使用教程 Step1 第一步下载IDEA软件 ID ...
- 【YashanDB知识库】EXP导致主机卡死问题
问题现象 问题单:exp导出全库1主2备主节点执行,DMP文件30G左右系统卡死,发生主备切换 现象: exp sys/Cod-2022 file=bim20240402.dmp full=y 服务器 ...
- MySQL read view 在RR和RC隔离级别下的异同
1.首先了解下什么是read view 这里说的 read view 是InnoDB 在实现 MVCC 时用到的一致性读视图,即 consistent read view,用于支持 RC(Read C ...
- vue3 如何获取 dom
1. 通过 ref 1. 在 html 标签上指定 ref 属性 2. 在 setup 中定义并返回.注意:标签上的 ref 属性名需要跟 setup 中的对应 <h1 ref= ...