将人类可读日期转换为纪元时间戳

时间:2012-11-25 01:16:14

标签: c# timestamp epoch

我正在开发一个C#项目,我的日期/时间格式为2012-11-24 15:35:18,我需要将其转换为一个纪元时间戳。

我在谷歌上发现的一切都是将一个纪元时间戳转换成人类可读的,但我需要它反过来做。

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

我发现了here

epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;

而不是DateTime.Now,您应该能够输入所需的时间。

答案 1 :(得分:1)

您没有说出确切的用例,但标准的.NET DateTime具有Ticks属性,定义为:

  

此属性的值表示100纳秒的数量   自0001年1月1日午夜12:00:00起经过的间隔,   代表DateTime.MinValue。它不包括数量   可归因于闰秒的滴答声。

如果符合您的需求,这基本上是一个基于时代的时间。否则,使用此值,您应该可以轻松计算到另一个纪元时间保持方法的转换。

答案 2 :(得分:0)

您需要使用TryParse:

string input = "2012-11-24 15:35:18";
DateTime dateTime;
if (DateTime.TryParse(input, out dateTime))
{
    ulong epoch = (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}