设计独立于文化的生日输入,包括三个选择:年,月和日。
在.NET中,如何为给定的文化获得三者的正确显示顺序,即:
┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐
│ Select year │v│ │ Select month │v│ │ Select day │v│
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘
┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐
│ Select day │v│ │ Select month │v│ │ Select year│v│
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘
或
┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐
│ Select month│v│ │ Select day │v│ │ Select year│v│
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘
*更新* 感谢大家的回答,这让我想出了这个小功能:
Public Function GetDateElementAtPos(ByVal pos As Integer) As String
Return Mid(Me.myCultureInfo.DateTimeFormat.ShortDatePattern.Split(Me.myCultureInfo.DateTimeFormat.DateSeparator)(pos), 1, 1).ToLower
End Function
myCultureInfo
表示已初始化的Globalization.CultureInfo
。我这样用它:
Dim s as new stringbuilder
For i As Integer = 0 To 2
Select Case GetDateElementAtPos(i)
Case "y"
s.append(**year select html goes here**)
Case "m"
s.append(**month select html goes here**)
Case "d"
s.append(**day select html goes here**)
End Select
Next
答案 0 :(得分:3)
你走了:
CultureInfo c = ....;
var dtf = c.DateTimeFormat;
var fs = dtf.ShortDatePattern;
答案 1 :(得分:2)
使用CurrentUICulture。 E.g。
CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern
会给你模式,然后你需要从显示顺序中解决。