格式化日期时出现问题

时间:2020-08-25 15:31:23

标签: asp.net vb.net

我正在尝试格式化以下值01/08/2020

Dim value1 as string  = '01/08/2020'

Response.Write(Format(CDate(value1),"yyyy-MMM-dd"))

结果返回为2020年1月8日而不是2020年8月1日

2 个答案:

答案 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

您需要在解析出错的情况下在停止位置添加代码。