如题,在C#, .NET Core, .NET 5, .NET 6的应用程序中,如何实现时间戳与日期之间的相互转换呢?比如将:2021-08-01 08:00:00 +08:00转换成时间戳1627776000000,相反,则将1627776000000转换成2021-08-01 08:00:00 +08:00。
2021-08-01 08:00:00 +08:00
1627776000000
Rector
2021-08-16 提问
在.NET 4.6及以上版本中,如果需要获取到高精度的毫秒时间戳,我们可以封装用于时间戳和日期相互转换的方法,如下:
请注意:以上两个方法均使用的是UTC的时区。
2021-08-16 回答
从.NET Framework 4.6开始,微软提供了将DateTimeOffset类型的日期转换成时间戳的方法:FromUnixTimeMilliseconds(),使用示例如下:
DateTimeOffset
FromUnixTimeMilliseconds()
输出结果为:1627776000000
同时,DateTimeOffset也提供了将时间戳转换成日期格式的扩展方法FromUnixTimeMilliseconds(),使用示例如下:
输出结果为:2021-08-01 08:00:00 +08:00
请注意,以上示例时间的时区为北京时间。
码龄: 3141天
专注.NET/.NET Core