我的网站从PayPal接收了一些数据。贝宝提供一个字符串来表示日期时间
10:52:32 Jan 17, 2019 PST
因为它是一个字符串,所以我可以通过按空格,逗号和冒号将其拆分来手动拆分。然后,我可以根据已拆分的内容创建
DateTime
对象在尝试之前,我的问题是,框架可以“自动”完成吗?
我的努力表明没有
DateTime.Parse("10:52:32 Jan 17, 2019 PST"); //System.FormatException: 'The string was not recognized as a valid DateTime. There is an unknown word starting at index NN.'
最佳答案
为此,可以使用DateTime
方法ParseExact
:
var dateTimeString = "10:52:32 Jan 17, 2019 PST";
var dateTime = DateTime.ParseExact(dateTimeString.Substring(0, dateTimeString.LastIndexOf(" ")), "HH:mm:ss MMM dd, yyyy", CultureInfo.InvariantCulture);
不幸的是,该框架对时区的支持不佳。您将必须创建时区词典并将其映射到各自的时间偏移,然后手动将其添加到生成的DateTime对象中。
这是一种实现方法:https://stackoverflow.com/a/30303587/633098。