我的字符串看起来很好,方法如下:
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”你怎么看?
答案 0 :(得分:4)
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;
将其变为双重
答案 1 :(得分:3)
有几个选项,但在不知道使用场景的情况下,不可能知道什么是“最佳”。
如果您可以将其存储为long
(Int64),则可以使用DateTime.Ticks。
另一个选项是使用DateTime.ToOADate,它将DateTime转换为OLE自动化日期为double。
要转换回来,您可以使用constructor that takes Ticks或DateTime.FromOADate。
答案 2 :(得分:0)
我相信这就是你要做的事情:
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();
}