我正在尝试从EDI- DateTime ( "20120713“/ YYYYMMDD或"120713”/ YYMMDD,甚至其他不带点的日期,所以只是数字)解析到C#中类似"DD.MM.YYY“的有效日期。
我不知道在不同的EDI订单中有多少不同的日期格式,所以我正在寻找一种可以应用于所有这些格式的解决方案。
谢谢大家。
发布于 2012-07-27 19:00:44
您应该对使用ParseExact的这种重载感兴趣,您可以将多种格式作为一个数组传递,它将尝试根据这些格式对其进行解析。(如果您可以控制这些格式并打算在此过程中使用一种格式,那就更好了)
DateTime start = DateTime.ParseExact("20120713",
new[] { "yyyyMMdd", "yyMMdd" },
CultureInfo.InvariantCulture,
DateTimeStyles.None);
DateTime end = DateTime.ParseExact("120713",
new[] { "yyyyMMdd", "yyMMdd" },
CultureInfo.InvariantCulture,
DateTimeStyles.None);对于您的输出,可以执行start.ToString("dd.MM.yyyy")
发布于 2012-07-27 19:00:36
这应该适用于多种格式
DateTime Result = new DateTime();
string[] dateFormats = new string[]{ "YYYYMMDD", "YYMMDD", /*other formats you might need*/ };
if (dateFormats.Any(format => DateTime.TryParseExact("yourDate", format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out Result)))
{ /* Result contains the parsed DateTime and you can use it*/ }
else
{ /* DateTime couldn't be parsed for any format you specified */ }https://stackoverflow.com/questions/11686382
复制相似问题