Lokalisering datoformat beskrivelsene

stemmer
15

Hva er den beste måten å lokalisere et datoformat descriptor?

Som noen fra en kultur som ikke bruker mm / dd / åååå format vet, er det irriterende å måtte oppgi datoer i dette formatet. .NET rammeverket gir noen veldig god lokalisering støtte, så det er trivielt å analysere datoer i henhold til brukere kultur, men du ofte vil også vise et nyttig hint som til formatet som kreves (spesielt å skille mellom yy og åååå som er utskiftbare i de fleste kulturer).

Hva er den beste måten å gjøre dette på en måte som gir mening for de fleste brukere (f.eks dd / M / yyy er forvirrende på grunn av endringen i saken og veksling mellom ett og to bokstaver).

Publisert på 03/08/2008 klokken 17:30
kilden bruker
På andre språk...                            


7 svar

stemmer
6

Bare bruk ISO-8601 . Det er en internasjonal standard.

Date and time (current at page generation) expressed according to ISO 8601:
Date:                           2014-07-05
Combined date and time in UTC:  2014-07-05T04:00:25+00:00
                                2014-07-05T04:00:25Z
Week:                           2014-W27
Date with week number:          2014-W27-6
Ordinal date:                   2014-186
Svarte 03/08/2008 kl. 18:18
kilden bruker

stemmer
4

Jeg må være enig med OP 'feil' dateres virkelig jar med min DD / MM / ÅÅÅÅ oppdragelse, og jeg synes ISO 8601 datoer og klokkeslett ekstremt lett å jobbe med. For når standarden fikk det rett og engtech har den åpenbare svaret som ikke krever lokalisering.

Jeg hadde tenkt å rapportere bursdag innspill skjemaet på stakkoverflyt som en feil på grunn av hvor mye av en sår tommel det er for de fleste av verden.

Svarte 04/08/2008 kl. 18:50
kilden bruker

stemmer
2

Problemet med internasjonale standarder, er at ganske mye ingen bruker dem. Jeg prøver der jeg kan, men jeg er tvunget til å bruke dd / mm / åååå nesten overalt i det virkelige liv, noe som betyr at jeg er så vant til det det er alltid en bevisst prosess for å bruke ISO-8601. For flertallet av folk som ikke engang prøver å bruke ISO-8601 er det enda verre. Hvis du kan internasjonal der du kan, jeg tror det er en stor fordel.

Svarte 04/08/2008 kl. 08:14
kilden bruker

stemmer
2

Her er min nåværende metode. Noen forslag?

Regex singleMToDoubleRegex = new Regex("(?<!m)m(?!m)");
Regex singleDToDoubleRegex = new Regex("(?<!d)d(?!d)");
CultureInfo currentCulture = CultureInfo.CurrentUICulture;

// If the culture is netural there is no date pattern to use, so use the default.
if (currentCulture.IsNeutralCulture)
{
    currentCulture = CultureInfo.InvariantCulture;
}

// Massage the format into a more general user friendly form.
string shortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.ToLower();
shortDatePattern = singleMToDoubleRegex.Replace(shortDatePattern, "mm");
shortDatePattern = singleDToDoubleRegex.Replace(shortDatePattern, "dd");
Svarte 03/08/2008 kl. 17:31
kilden bruker

stemmer
1

En kort form er praktisk og bidrar til å unngå stavefeil. Lokalisere hva som er aktuelt, men sørg for å vise den forventede format (ikke la brukeren blind). Tilveiebringe en datovelgeren kontroll som en valgfri aide for å fylle i felten.

Som en ekstra, on-the-fly parsing og visning av datoen i lang form kan hjelpe også.

Svarte 04/08/2008 kl. 19:13
kilden bruker

stemmer
1

Hva med å gi formatet (mm / dd / åååå eller dd / mm / åååå) etterfulgt av en utskrift av dagens dato i brukerens kultur. MSDN har en artikkel om å formatere en Datetime for personens kultur , ved hjelp av Culture objekt som kan være nyttig i å gjøre dette. En kombinasjon av formatet (som de fleste er kjent med) kombinert med dagens dato representert i dette formatet bør være nok av en ledetråd til personen på hvordan de skal fylle ut datoen. (Inkluderer også en kalender kontroll for de som fortsatt ikke kan finne ut av det).

Svarte 03/08/2008 kl. 17:37
kilden bruker

stemmer
0

Beste alternativet : Jeg vil i stedet anbefale å bruke en standard datovelgeren.

Alternativ : hver gang innholdet i redigeringskontrollen endringene, analysere den og vise (i en egen kontroll?) Det lange formatet på dato (dvs: input "03/04/09" display "Ditt innspill: 04.03.2009" )

Svarte 19/09/2008 kl. 17:02
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more