如何将时间戳转换为日期时间?
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();
【讨论】:
请编辑您的问题,而不是发布更新作为答案。我现在已经为你完成了。以上是关于如何将时间戳转换为日期时间?的主要内容,如果未能解决你的问题,请参考以下文章