2015-02-10 46 views
0

完全搞砸了与Lotus Notes DXL时间戳格式... 由于是导出DXL从Lotus Notes文档时间戳,它看起来像:转换DXL时间戳C#的DateTime

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#可以处理上面的时间戳吗?

+0

第一部分看起来很简单 - 你应该引用'T','hh'应该是'HH',理想情况下你应该包括秒钟......但是你知道什么是',49 + 01 '是为了表明? – 2015-02-10 11:58:05

+0

对,不知道如何处理逗号后面的部分......在当前的应用案例中秒数并不是真的需要,但是也很好。 :)我真的需要首先SubString吗?调试显示我,SubString剪切似乎没有完成,但它正在工作... – SiL3NC3 2015-02-10 12:03:18

+0

通过将“hh”更改为“HH”,引用有所帮助,异常消失。所以如果你把这个作为答案,我会设置这个问题的答案。非常感谢你帮助我! – SiL3NC3 2015-02-10 12:08:41

回答

1

的问题是你的文本格式 - 你已经使用hh这是12小时时钟,但你的13的值你想HH,这是24小时制。我也建议引述T,你只是想字面T字符,并考虑以下两个字符第二:

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

然后,我会建议保持它作为一个DateTime只要你能,只能转换回实际需要将其显示给客户端的字符串。

+0

作品!谢谢。 – SiL3NC3 2015-02-10 13:03:26