首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你如何转换C#中的纪元时间?

你如何转换C#中的纪元时间?
EN

Stack Overflow用户
提问于 2018-08-20 11:53:36
回答 2查看 0关注 0票数 0

如何在C#中将Unix 纪元时间转换为实时?(Epoch开始于1970年1月1日)

EN

回答 2

Stack Overflow用户

发布于 2018-08-20 19:54:05

如果你需要将包含的timeval结构(秒,微秒)转换UNIX timeDateTime不丢失精度,则执行以下操作:

代码语言:javascript
复制
DateTime _epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
private DateTime UnixTimeToDateTime(Timeval unixTime)
{
    return _epochTime.AddTicks(
        unixTime.Seconds * TimeSpan.TicksPerSecond +
        unixTime.Microseconds * TimeSpan.TicksPerMillisecond/1000);
}
票数 0
EN

Stack Overflow用户

发布于 2018-08-20 21:24:17

最新版本的.NET(V4.6)的用于Unix时间转换只是增加了内置支持。这包括来自Unix时间和来自Unix或毫秒的时间。

  • Unix时间以秒为单位DateTimeOffset

代码语言:javascript
复制
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(1000);
  • DateTimeOffset 以秒为单位的Unix时间:

代码语言:javascript
复制
long unixTimeStampInSeconds = dateTimeOffset.ToUnixTimeSeconds();
  • Unix时间(以毫秒为单位)DateTimeOffset

代码语言:javascript
复制
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(1000000);
  • DateTimeOffset 以毫秒为单位的Unix时间:

代码语言:javascript
复制
long unixTimeStampInMilliseconds= dateTimeOffset.ToUnixTimeMilliseconds();

注意:这些方法可以转换为DateTimeOffset。要获得DateTime表示,只需使用该DateTimeOffset.DateTime属性:

代码语言:javascript
复制
DateTime dateTime = dateTimeOffset.UtcDateTime;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档