2011-10-11 4 views
5

Thiết kế đầu vào ngày sinh độc lập văn hóa bao gồm ba lựa chọn: năm, tháng và ngày.Trong .NET, làm thế nào để nhận được thứ tự YYYY, MM và DD cho một nền văn bản nhất định

Trong .NET, làm thế nào để tôi nhận được thứ tự hiển thị đúng trong ba cho một nền văn hóa nhất định, ví dụ .:

┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐ 
│ Select year │v│ │ Select month │v│ │ Select day │v│ 
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘ 

┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐ 
│ Select day │v│ │ Select month │v│ │ Select year│v│ 
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘ 

hoặc

┌─────────────┬─┐ ┌──────────────┬─┐ ┌────────────┬─┐ 
│ Select month│v│ │ Select day │v│ │ Select year│v│ 
└─────────────┴─┘ └──────────────┴─┘ └────────────┴─┘ 

* CẬP NHẬT * Nhờ tất cả cho câu trả lời của bạn, nó làm cho tôi đi lên với chức năng nhỏ này:

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 

Trường hợp myCultureInfo đại diện cho Globalization.CultureInfo được khởi tạo. Tôi sử dụng nó như thế này:

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

Rất vui khi bạn tìm thấy giải pháp Muleskinner, nếu đây là ứng dụng web, hãy đảm bảo bạn sử dụng CurrentUICulture, nếu không bạn sẽ trả về văn hóa của máy chủ IIS. – magritte

+0

@Tony Leeper Có của nó cho một ứng dụng web, và có tôi biết cảm ơn. Nó được sử dụng sau ủy quyền người dùng và người dùng tự chọn văn hóa của mình – Muleskinner

Trả lời

3

Ở đây bạn đi:

CultureInfo c = ....; 
var dtf = c.DateTimeFormat; 
var fs = dtf.ShortDatePattern; 
2

Sử dụng CurrentUICulture. Ví dụ.

CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern 

Sẽ cung cấp cho bạn mẫu, sau đó bạn sẽ cần phải làm việc ra khỏi thứ tự hiển thị đó.

+0

Cảm ơn, câu trả lời hay - đã được chấp nhận trước đó vài phút – Muleskinner