如何将时间戳转换为日期时间?

Posted

技术标签:

【中文标题】如何将时间戳转换为日期时间?【英文标题】:How to Convert Timestamp to DateTime? 【发布时间】:2019-04-03 07:08:44 【问题描述】:

我想将纪元转换为人类可读的日期,反之亦然。 我想用 C# 写类似link 的东西。

将 Firefox 中的 places.sqlite 文件中的日期转换为 DateTime。

static void Main(string[] args)

    //1540787809621000
    string epoch = "1540787809621000";


private string epoch2string(int epoch) 
    return 
        new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
            .AddSeconds(epoch)
            .ToShortDateString(); 

int size 不够,我尝试了很长的 epoch 但不起作用

【问题讨论】:

请分享你的c#代码 以及“不工作”的含义。 DateTimeOffset.FromUnixTimeSeconds(Int64) Method How can I convert a Unix timestamp to DateTime and vice versa?的可能重复 @ThanawutPadermwong,当您必须向您的问题添加信息时,请使用帖子底部的edit 按钮。答案框是用来回答的,不是用来澄清的。 【参考方案1】:

您的时间是以微秒为单位的 Unix 时间。

如果您使用的是 .Net 4.6 或更高版本,您可以将其转换为 DateTime,如下所示。

long time = 1540787809621000; // Unix time in microseconds.

time /= 1000; // Divide by 1,000 because we need milliseconds, not microseconds.

DateTime result = DateTimeOffset.FromUnixTimeMilliseconds(time).DateTime;

Console.WriteLine(result); // Prints 29/10/2018 04:36:49 (UK format)

【讨论】:

谢谢老哥 time/1000 因为毫秒 你是家人吗?谁知道你的名字...@ThanawutPadermwong 谁知道你的名字。对不起,我不明白【参考方案2】:

时间戳是从 1970 年 1 月 1 日开始的秒数

static DateTime ConvertFromUnixTimestamp(double timestamp)

    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return origin.AddSeconds(timestamp);

【讨论】:

【参考方案3】:

这个例子我修好了

    static void Main(string[] args)
    
        //1540787809621000
        int epoch = "1540787809621000"; //this microseconds 
        epoch /= 1000; // convert to milliseconds by divide 1000  
        epoch2string(epoch) 
    

private string epoch2string(int epoch) 
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(epoch).ToShortDateString(); 

【讨论】:

请编辑您的问题,而不是发布更新作为答案。我现在已经为你完成了。

以上是关于如何将时间戳转换为日期时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何将时间戳转换为日期时间?

如何将时间戳转换为日期

如何在雪花中将时间戳转换为日期

如何将 dmesg 时间戳转换为自定义日期格式?

Pandas 如何将时间戳列转换为日期时间? [复制]

如何将一列时间戳转换为日期时间? [复制]