用毫秒将日期时间转换为double或int?
我有一个字符串按以下方式看起来不错:用毫秒将日期时间转换为double或int?
TimeString = "2011.01.02 22:06:52.091"
现在我想将其转换为加倍,并将其保存为双号。我正在做c#,我怎么能做到这一点?
真的无法在网上找到答案。
编辑:
的时间是一种金融货币报价时间戳:
时间买入卖出
2011.01.02 22:06:52.091 1.5000 1.5001
它是外汇报价时间的时间戳。我更喜欢这样:xxxxxxxxxxxxxxxx.ooo,xxxxxxxxxxxxxxx是显示“2011.01.02 22:06:52”我们有多少秒的int部分,而.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;
把它变成一个双
@ Keith.Nicholas,String未被识别为有效的DateTime。这是通过运行您的代码投诉。 – 2012-02-02 03:11:08
对不起,应该是HH不是......,改了我的代码,HH是24小时的时间。 – 2012-02-02 03:17:55
居然把它改成了更好的东西:) – 2012-02-02 03:23:59
有一对夫妇的选择,但它是不可能知道什么是“最好的”,而无需知道使用场景。
如果可以将其存储为long
(Int64),则可以使用DateTime.Ticks。
另一种选择是使用DateTime.ToOADate,它将DateTime转换为OLE自动化日期的双精度型。
@ Reed.Copsey,你可能会写几个代码来进一步解释吗? – 2012-02-02 03:10:25
我相信这是你正在尝试做的:
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();
}
什么样的价值做你希望得到的结果呢?蜱,毫秒数等?换一种方式,你打算如何使用结果? – 2012-02-02 02:37:15
可能的重复[如何将日期时间值转换为双?](http://*.com/questions/1010697/how-can-i-convert-a-datetime-value-to-a-double) – adatapost 2012-02-02 02:41:16
@ M.Babcock,实际上,这是外汇报价时间的时间戳。我更喜欢这样:xxxxxxxxxxxxxxxx.ooo,xxxxxxxxxxxxxxx是显示“2011.01.02 22:06:52”我们有多少秒的int部分,而.ooo是“091”的毫秒,你觉得如何? – 2012-02-02 02:41:42