特殊日期时间格式为字符串,看起来像双

时间:2017-12-15 10:36:34

标签: c# datetime format

我必须为外部应用程序创建一个xml文件我没有文件结构的描述,所以我必须通过逆向工程。原始所需文件具有属性

LastChange = "43061.2997590394"

我认为这是特殊DateTime格式的结果。

DateTime.Parse("43061.2997590394")抛出异常。

有谁知道这是什么格式?

1 个答案:

答案 0 :(得分:4)

使用DateTime.FromOADate

double oaValue = double.Parse("43061.2997590394", CultureInfo.InvariantCulture);
DateTime dt = DateTime.FromOADate( oaValue );  // Result: 11/22/2017 07:11:39

来自MSDN的评论:

  

OLE自动化日期实现为浮点数   积分分量是午夜之前或之后的天数,30   1899年12月,其小数部分代表时间   那天除以24。例如,1899年12月31日午夜   以1.0表示; 1900年1月1日上午6点,由2.25表示;   1899年12月29日午夜以-1.0表示;和上午6点,29   1899年12月以-1.25表示。

     

基本OLE自动化日期是1899年12月30日午夜   最小OLE自动化日期是0100年1月1日午夜。最大值   OLE自动化日期与最后一刻的DateTime.MaxValue相同   9999年12月31日。