我以日期时间刻度格式存储Azure表存储rowkey
String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);
我想转换回日期时间。
答案 0 :(得分:6)
如果你这样做:
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);
答案 1 :(得分:0)
您的代码在我的时区返回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
但老实说,根据你所做的事情,我 非常确定这是你想要的价值。