将人类可读的日期转换为纪元时间戳
Posted
技术标签:
【中文标题】将人类可读的日期转换为纪元时间戳【英文标题】:Convert Human readable date into an epoch time stamp 【发布时间】:2012-11-12 21:35:17 【问题描述】:我正在处理一个 C# 项目,其中我有一个 2012-11-24 15:35:18
格式的日期/时间,我需要将其转换为一个纪元时间戳。
我在 Google 上找到的所有内容都是将纪元时间戳转换为人类可读的,但我需要反过来做。
感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:我找到了这个here:
epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
您应该可以输入您想要的时间,而不是 DateTime.Now。
【讨论】:
谢谢,我查看了那个网站,没有注意到底部所有不同的代码示例【参考方案2】:您没有说出您的确切用例,但标准 .NET DateTime 有一个 Ticks
属性,其定义为:
这个属性的值代表100纳秒的数量 自 0001 年 1 月 1 日午夜 12:00:00 以来经过的时间间隔, 它代表 DateTime.MinValue。它不包括数量 可归因于闰秒的滴答声。
这本质上是一个基于纪元的时间,如果它符合您的需要的话。否则,使用此值,您应该能够轻松计算转换为另一个纪元计时方法。
【讨论】:
【参考方案3】:您需要使用 TryParse:
string input = "2012-11-24 15:35:18";
DateTime dateTime;
if (DateTime.TryParse(input, out dateTime))
ulong epoch = (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
【讨论】:
以上是关于将人类可读的日期转换为纪元时间戳的主要内容,如果未能解决你的问题,请参考以下文章