将日期时间用毫秒转换为double或int?

我有一个看起来很好的字符串,方法如下:

TimeString = "2011.01.02 22:06:52.091" 

现在我想将它转换为double,并将其保存为双号。 我在c#中这样做,我怎么能这样做?

真在网上找不到答案。

编辑:

时间是金融货币报价的时间戳:

时间出价问

2011.01.02 22:06:52.091 1.5000 1.5001

这是外汇报价时间的时间戳。 我更喜欢这样:xxxxxxxxxxxxxxxx.ooo,xxxxxxxxxxxxxxx是int部分,显示我们从“2011.01.02 22:06:52”获得了多少秒,而.ooo是毫秒,为“091”你怎么看?

 var span = DateTime.ParseExact(TimeString, "yyyy.MM.dd HH:mm:ss.fff", CultureInfo.InvariantCulture) - new DateTime(2011, 01, 02, 22, 06, 52, 0); double d = span.TotalMilliseconds/1000.0; 

把它变成双重的

有几个选项,但在不知道使用场景的情况下,不可能知道什么是“最佳”。

如果您可以将其存储为long (Int64),则可以使用DateTime.Ticks 。

另一个选项是使用DateTime.ToOADate ,它将DateTime转换为OLE自动化日期为double。

要转换回来,您可以使用带Ticks或DateTime.FromOADate的构造函数 。

我相信这是你想要做的:

 static void Main(string[] args) { String timeString = "2011.01.02 22:06:52.091"; string format = "yyyy.MM.dd HH:mm:ss.fff"; double date = DateTime.ParseExact(timeString, format, CultureInfo.InvariantCulture).ToOADate(); }