你认识一个 16 位的时间戳吗?
Posted
技术标签:
【中文标题】你认识一个 16 位的时间戳吗?【英文标题】:do you recognize a 16-digit timestamp? 【发布时间】:2011-03-14 05:55:24 【问题描述】:我正在使用 Google bookmakrs,它返回 16 位时间戳,我似乎无法在 C# 中识别它以转换为真实日期,有什么想法吗?
如何将此时间戳:1278276905502403 转换为在 C# 中有意义的内容?
【问题讨论】:
【参考方案1】:这看起来像 UNIX 时间,以微秒为单位。即自 1970.01.01 00:00:00 以来的微秒数。
可以试试这样的:
dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddMilliseconds(value/1000);
(可能是更好的方法,但我不懂 C#。)
改为 Python:
>>> time.ctime(1278276905502403/1000000)
'Sun Jul 4 22:55:05 2010'
【讨论】:
为什么要将它舍入为整数? o_O 我不知道 C#,也没有谷歌检查它是否接受浮点,我也不知道 C# 对隐式转换有多严格。但是我更新了它以使用 AddMilliseconds() 作为另一个答案,尽管现在它们基本相同。 你绝对正确,我把最后三位数字放在一起,它就像一个魅力(下面的答案也是正确的)【参考方案2】:时间戳是自纪元 (01/01/1970 00:00:00 UTC) 以来的微秒数。
您可以像这样在 C# 中将其转换为 DateTime:
var timestamp = 1278276905502403;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var myDate = epoch.AddMilliseconds(timestamp / 1000);
示例时间戳的结果是:07/04/2010 08:55:05 PM
【讨论】:
以上是关于你认识一个 16 位的时间戳吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 Youtube API 在字幕轨道中搜索关键字/时间戳吗?
我可以在 Firestore 中重复使用现有字段作为分片时间戳吗?