【问题标题】:Convert datetime ticks(String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks) to datetime将日期时间刻度(String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks) 转换为日期时间
【发布时间】:2016-03-17 08:24:41
【问题描述】:

我以日期时间刻度格式存储 Azure 表存储行键

String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);

我想转换回日期时间。

【问题讨论】:

  • 当您将 back 转换为 DateTime 时,您想要什么结果?
  • 我只是在 View.for 中显示所有表格的详细信息。因为我需要将刻度转换为正常的日期时间。
  • 您也可以查看 Log Tail pattern 的 NoSQL 表。

标签: c# .net datetime azure azure-table-storage


【解决方案1】:

如果你正在做:

string str = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);

那么我们就有了

// str = max - now

那么

// now = max - str

所以

DateTime now = new DateTime(DateTime.MaxValue.Ticks - long.Parse(str), DateTimeKind.Utc);

【讨论】:

    【解决方案2】:

    您的代码在我的时区返回2519440974768899656,现在是UTC +02:00,您可以将此字符串解析为long,并可以在DateTime(long) 构造函数中使用。

    var s = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).Dump();
    long l = long.Parse(s);
    (new DateTime(l)).Dump();
    

    返回

    16.10.7984 15:31:16
    

    但老实说,取决于你在做什么,我很确定这是你想要的价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 2011-04-22
      • 2013-09-20
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      相关资源
      最近更新 更多