【发布时间】:2025-12-04 00:15:02
【问题描述】:
设计一个独立于文化的生日输入,包括三个选项:年、月和日。
在 .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
【问题讨论】:
-
很高兴您找到了 Muleskinner 的解决方案,如果这是针对 Web 应用程序的,请确保您使用 CurrentUICulture,否则您将返回 IIS 服务器的文化。
-
@Tony Leeper 是的,它适用于 web 应用程序,是的,我知道谢谢。它用于用户授权和用户选择自己的文化
标签: .net date cultureinfo