0

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

我在谷歌上找到的所有东西都是将纪元时间戳转换成人类可读的,但我需要反过来做。

感谢您的任何帮助,您可以提供。

4

3 回答 3

2

我在这里找到了这个:

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

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

于 2012-11-25T01:24:12.300 回答
1

你没有说你的确切用例,但标准的.NET DateTime 有一个Ticks属性定义为:

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

如果它适合您的需要,这本质上是一个基于纪元的时间。否则,使用此值,您应该能够轻松计算到另一个纪元计时方法的转换。

于 2012-11-25T01:23:00.507 回答
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;
}
于 2012-11-25T01:28:27.967 回答