2011-10-11 7 views
5

Progettazione di un input di data di nascita indipendente dalla cultura composto da tre selezioni: anno, mese e giorno.In .NET, come ottengo l'ordine di AAAA, MM e GG per una data coltura

In .NET, come faccio ad ottenere l'ordine di visualizzazione corretta del tre per una data cultura, vale a dire .:

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

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

o

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

* UPDATE * Grazie a tutto per le tue risposte, mi ha fatto venire questa piccola funzione:

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 

Dove myCultureInfo rappresenta un Globalization.CultureInfo inizializzato. Io lo uso come questo:

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

Contento di aver trovato una soluzione per Muleskinner, se si tratta di un'applicazione Web, assicurati di utilizzare CurrentUICulture, altrimenti restituirai la cultura del server IIS. – magritte

+0

@Tony Leeper Sì è per una webapp, e sì lo so grazie. Viene utilizzato dietro l'autorizzazione dell'utente e l'utente ha scelto se stesso la sua cultura – Muleskinner

risposta

3

Qui si va:

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

Utilizzare la CurrentUICulture. Per esempio.

CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern 

Vi darà il modello, quindi dovrete elaborare da quello l'ordine di visualizzazione.

+0

Grazie, buona risposta - le accettate erano pochi minuti prima – Muleskinner

Problemi correlati