我正在尝试格式化以下值01/08/2020
Dim value1 as string = '01/08/2020'
Response.Write(Format(CDate(value1),"yyyy-MMM-dd"))
结果返回为2020年1月8日而不是2020年8月1日
答案 0 :(得分:0)
有一种更简单的格式化日期的方法。试试这个:
Response.Write(DateTime.ParseExact(value1, "dd/MM/yyyy", null).ToString("yyyy-MMM-dd"))
有关各种可能的日期格式,请参见https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings。
答案 1 :(得分:0)
出于谨慎,我会这样做
Dim value1 As String = "1/8/2020" '
Dim d As Date
'https://docs.microsoft.com/en-us/dotnet/api/system.datetime.tryparseexact?view=netcore-3.1#System_DateTime_TryParseExact_System_String_System_String___System_IFormatProvider_System_Globalization_DateTimeStyles_System_DateTime__
If DateTime.TryParseExact(value1, "d/M/yyyy", Nothing, Globalization.DateTimeStyles.None, d) Then
Dim s As String = d.ToString("yyyy-MMM-dd")
Response.Write(s)
Else
Stop 'error placeholder
End If
您需要在解析出错的情况下在停止位置添加代码。