.NET中的格式化日期函数

时间:2010-04-03 10:02:23

标签: .net datetime

是否有内置的.NET日期格式化函数以格式返回日期:

2010年4月3日

这是“rd”位,我无法回忆是否有格式化选项。

干杯,罗布。

3 个答案:

答案 0 :(得分:4)

不要以为有内置的方式。但是从blog post复制/粘贴一个很容易:

Protected Function FormatPostedTimeWithDayNumberSuffix(Optional ByVal format As String = "MMMM d{0}, yyyy") As String
    Dim dateTime As DateTime = Date.Parse(Entry.PostedTime)
    If Not Null.IsNull(dateTime) Then
        Dim formatTime As String = dateTime.ToString(format)

        Dim day As Integer = dateTime.Day
        Dim dayFormat As String = String.Empty
        Select Case day
            Case 1, 21, 31
                dayFormat = "st"
            Case 2, 22
                dayFormat = "nd"
            Case 3, 23
                dayFormat = "rd"
            Case Else
                dayFormat = "th"
        End Select

        Return String.Format(formatTime, dayFormat)
    End If

    Return Entry.PostedTime
End Function

答案 1 :(得分:0)

我担心你必须亲自去做。在C#中,它将是这样的:

if (dt.Day == 1) strdate = dt.ToString("dd") + "st";
else if (dt.Day == 2) strdate = dt.ToString("dd") + "nd";
else if (dt.Day == 3) strdate = dt.ToString("dd") + "rd";
else if (dt.Day == 21) strdate = dt.ToString("dd") + "st";
else if (dt.Day == 22) strdate = dt.ToString("dd") + "nd";
else if (dt.Day == 23) strdate = dt.ToString("dd") + "rd";
else if (dt.Day == 31) strdate = dt.ToString("dd") + "st";
else strdate = dt.ToString("dd") + "th";

答案 2 :(得分:0)

谢谢大家 - 我怀疑依赖记忆的同样多,但绝不是好主意。此要求没有内置的功能/格式化选项,因此您必须自己动手。

干杯,罗布。