将一个未知的DatePattern转换为已知模式

时间:2017-08-02 19:33:51

标签: vb.net

我使用以下方法获取用户机器的日期模式:

Dim sysFormat As String = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern

所以例如它来自M/d/yy,但在我的程序中,我想以M/d/yyyy格式解析它们。但他们甚至可能有其他格式,我们不知道什么格式。 总是将成为美国英语。

那么有没有办法自动将其转换为M/d/yyyy格式?或者我是否必须手动执行一些字符串处理代码并将字符串拆分为日,月,年的不同部分?

2 个答案:

答案 0 :(得分:1)

您的要求似乎非常具体。您可以使用DateTime.TryParseExact尝试解析一些有效格式,并检查有效日期中是否有任何结果。使用新的C#功能,您甚至可以摆脱额外的参数声明。例如:

DateTime.TryParseExact(dateTime, 
                       "M/d/yy", 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       DateTime out dt);

答案 1 :(得分:1)

您是否尝试将String格式化为Datetime对象,然后使用特定的格式化程序进行解析?

Dim myDate As DateTime = DateTime.ParseExact(sysFormat, "M/d/yyyy", 
        System.Globalization.CultureInfo.InvariantCulture)

你的新字符串(格式化的字符串)是:

Dim formattedStringDate As String = myDate.ToString("M/d/yyyy")