将日期时间用毫秒转换为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(); }