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