C# 将datetime标记(String.Format(“{0:D19}”,datetime.MaxValue.ticks-datetime.UtcNow.ticks)转换为datetime

C# 将datetime标记(String.Format(“{0:D19}”,datetime.MaxValue.ticks-datetime.UtcNow.ticks)转换为datetime,c#,.net,datetime,azure,azure-table-storage,C#,.net,Datetime,Azure,Azure Table Storage,我正在以日期时间刻度格式存储Azure表存储行键 String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks); 我想转换回最新时间。如果您正在执行以下操作: string str = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks); 那我们就有了 // str = max - now 那么 // now

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

String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);
我想转换回最新时间。

如果您正在执行以下操作:

string str = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);
那我们就有了

// str = max - now
那么

// now = max - str
所以


您的代码在我的时区UTC+02:00上返回
2519440974768899656
,您可以将此字符串解析为
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

但老实说,根据您所做的,我不太确定这是否是您想要的值。

当您转换回
DateTime
时,您希望得到什么结果?我只是在视图中显示所有表的详细信息。为此,我需要将刻度转换为正常的日期时间。您也可以签出NoSQL表。
16.10.7984 15:31:16