将DXL时间戳转换为C#DateTime

时间:2015-02-10 11:56:26

标签: c# timestamp lotus ibm-doors

完全搞砸了Lotus Notes DXL时间戳格式...... 给定是Lotus Notes文档中导出的DXL的时间戳,如下所示:

20141104T132939,49+01

尝试使用DateTime.ParseExact格式,例如:

DateTime.ParseExact(dateStr.Substring(0, 13), "yyyyMMddThhmm", System.Globalization.CultureInfo.InvariantCulture).ToString("dd.MM.yyyy hh:mm");

但没有运气>>> System.FormatException "no valid DateTime format"

C#能否按原样处理上述时间戳?

1 个答案:

答案 0 :(得分:1)

问题在于您的文字格式 - 您已使用hh这是 12小时时钟,但您的值为13.您想要的HH,这是24小时制。我还建议引用T,因为您只需要文字T字符,并且还要为第二个字符添加以下两个字符:

DateTime dateTime = DateTime.ParseExact(
    dateStr.Substring(0, 15),
    "yyyyMMdd'T'HHmmss",
    CultureInfo.InvariantCulture);

我会建议尽可能长时间保持DateTime,只转换回你真正需要将其显示给客户的字符串。