Vb.net 格式异常(字符串未被识别为有效的日期时间)
我不明白这个代码有什么问题:Vb.net 格式异常(字符串未被识别为有效的日期时间),vb.net,Vb.net,我不明白这个代码有什么问题: Date.ParseExact("9072019","dMMyyyy",CultureInfo.CurrentUICulture.DateTimeFormat).ToString("d/MM/yyyy") Dim dateStrings = {"9072019", "09072019", "10072019"} Dim formatStrings = {"dMMyyyy", "ddMMyyyy"} Dim d As Date For Each ds In dat
Date.ParseExact("9072019","dMMyyyy",CultureInfo.CurrentUICulture.DateTimeFormat).ToString("d/MM/yyyy")
Dim dateStrings = {"9072019", "09072019", "10072019"}
Dim formatStrings = {"dMMyyyy", "ddMMyyyy"}
Dim d As Date
For Each ds In dateStrings
For Each fs In formatStrings
If Date.TryParseExact(ds, fs, Nothing, DateTimeStyles.None, d) Then
Console.WriteLine("({0}, {1}) => {2:MMMM d, yyyy}", ds, fs, d)
Else
Console.WriteLine("({0}, {1}) => Invalid input", ds, fs)
End If
Next
Next
Dim dateStrings = {"9/07/2019", "09/07/2019", "10/07/2019"}
Dim formatStrings = {"d/MM/yyyy", "dd/MM/yyyy"}
Dim d As Date
For Each ds In dateStrings
For Each fs In formatStrings
If Date.TryParseExact(ds, fs, Nothing, DateTimeStyles.None, d) Then
Console.WriteLine("({0}, {1}) => {2:MMMM d, yyyy}", ds, fs, d)
Else
Console.WriteLine("({0}, {1}) => Invalid input", ds, fs)
End If
Next
Next
我希望将整数值9072019转换为日期值9/07/2019您应该确保有足够的字符表示任何日期。你一天只留下一个字符,但如果不是7月9日,而是7月10日呢?在第10-31天,您需要另一个以dd开头的格式字符串。因此,让我们先将字符串格式化为8个字符,然后使用适当的字符串 尺寸i=9072019 Dim s=i.toString G00000000'现在字符串看起来像09072019 Dim dt=Date.ParseExacts,dMMyyyy,CultureInfo.CurrentUICulture 在解析字符串之前,只需确保字符串中有8位数字@jmchilinney answer使用PadLeft i.ToString.PadLeft8,0c更优雅地实现了这一点。您的单个d格式字符串似乎没有问题 请参见代码中的,9072019不是一个有效日期,因此您会收到如下错误: 字符串未被识别为有效的日期时间 要解决这个问题,你需要确保它是有效的;应该是09072019年 您可以使用该函数检查它是否有效
If IsDate("09072019") Then
' Date/DateTime works fine here...
Date.ParseExact("09072019", "MMddyyyy", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy")
End If
我不认为已经提供的任何一个答案实际上都解决了这个问题。查看此代码:
Date.ParseExact("9072019","dMMyyyy",CultureInfo.CurrentUICulture.DateTimeFormat).ToString("d/MM/yyyy")
Dim dateStrings = {"9072019", "09072019", "10072019"}
Dim formatStrings = {"dMMyyyy", "ddMMyyyy"}
Dim d As Date
For Each ds In dateStrings
For Each fs In formatStrings
If Date.TryParseExact(ds, fs, Nothing, DateTimeStyles.None, d) Then
Console.WriteLine("({0}, {1}) => {2:MMMM d, yyyy}", ds, fs, d)
Else
Console.WriteLine("({0}, {1}) => Invalid input", ds, fs)
End If
Next
Next
Dim dateStrings = {"9/07/2019", "09/07/2019", "10/07/2019"}
Dim formatStrings = {"d/MM/yyyy", "dd/MM/yyyy"}
Dim d As Date
For Each ds In dateStrings
For Each fs In formatStrings
If Date.TryParseExact(ds, fs, Nothing, DateTimeStyles.None, d) Then
Console.WriteLine("({0}, {1}) => {2:MMMM d, yyyy}", ds, fs, d)
Else
Console.WriteLine("({0}, {1}) => Invalid input", ds, fs)
End If
Next
Next
结果如下:
(9072019, dMMyyyy) => Invalid input
(9072019, ddMMyyyy) => Invalid input
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
(9/07/2019, d/MM/yyyy) => July 9, 2019
(9/07/2019, dd/MM/yyyy) => Invalid input
(09/07/2019, d/MM/yyyy) => July 9, 2019
(09/07/2019, dd/MM/yyyy) => July 9, 2019
(10/07/2019, d/MM/yyyy) => July 10, 2019
(10/07/2019, dd/MM/yyyy) => July 10, 2019
(9072019, dMMyyyy) => July 9, 2019
(9072019, ddMMyyyy) => July 9, 2019
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
结果如下:
(9072019, dMMyyyy) => Invalid input
(9072019, ddMMyyyy) => Invalid input
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
(9/07/2019, d/MM/yyyy) => July 9, 2019
(9/07/2019, dd/MM/yyyy) => Invalid input
(09/07/2019, d/MM/yyyy) => July 9, 2019
(09/07/2019, dd/MM/yyyy) => July 9, 2019
(10/07/2019, d/MM/yyyy) => July 10, 2019
(10/07/2019, dd/MM/yyyy) => July 10, 2019
(9072019, dMMyyyy) => July 9, 2019
(9072019, ddMMyyyy) => July 9, 2019
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
结果如下:
(9072019, dMMyyyy) => Invalid input
(9072019, ddMMyyyy) => Invalid input
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
(9/07/2019, d/MM/yyyy) => July 9, 2019
(9/07/2019, dd/MM/yyyy) => Invalid input
(09/07/2019, d/MM/yyyy) => July 9, 2019
(09/07/2019, dd/MM/yyyy) => July 9, 2019
(10/07/2019, d/MM/yyyy) => July 10, 2019
(10/07/2019, dd/MM/yyyy) => July 10, 2019
(9072019, dMMyyyy) => July 9, 2019
(9072019, ddMMyyyy) => July 9, 2019
(09072019, dMMyyyy) => July 9, 2019
(09072019, ddMMyyyy) => July 9, 2019
(10072019, dMMyyyy) => July 10, 2019
(10072019, ddMMyyyy) => July 10, 2019
2019年7月9日是7月9日还是9月7日?在代码9072019中,dMMyyyy使它看起来像7月9日。根据我当地的标准美国,2019年7月9日将改为9月7日。因此,你的问题有些含糊不清,需要澄清一下。下面的答案是不同的解释。