How do you convert epoch time in C#?

后端 未结 14 2306
野的像风
野的像风 2020-11-22 06:51

How do you convert Unix epoch time into real time in C#? (Epoch beginning 1/1/1970)

相关标签:
14条回答
  • 2020-11-22 07:23

    I presume that you mean Unix time, which is defined as the number of seconds since midnight (UTC) on 1st January 1970.

    private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    
    public static DateTime FromUnixTime(long unixTime)
    {
        return epoch.AddSeconds(unixTime);
    }
    

    UPDATE 2020

    You can do this with DateTimeOffset

    DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(epochSeconds);
    DateTimeOffset dateTimeOffset2 = DateTimeOffset.FromUnixTimeMilliseconds(epochMilliseconds);
    

    And if you need the DateTime object instead of DateTimeOffset, then you can call the DateTime property

    DateTime dateTime = dateTimeOffset .DateTime;
    
    0 讨论(0)
  • 2020-11-22 07:24

    I use following extension methods for epoch conversion

    public static int GetEpochSeconds(this DateTime date)
        {
            TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1);
            return (int)t.TotalSeconds;
        }
    
    public static DateTime FromEpochSeconds(this DateTime date, long EpochSeconds)
        {
            var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            return epoch.AddSeconds(EpochSeconds);
    
        }
    
    0 讨论(0)
提交回复
热议问题