Lokalizaci formátu data popisovače

hlasů
15

Jaký je nejlepší způsob, jak lokalizovat formátu data deskriptor?

Jako každý z kultury, která nepoužívá ve formátu mm / dd / yyyy ví, je to otravné muset zadávat data v tomto formátu. Rámec NET poskytuje některé velmi dobrou podporu lokalizace, takže je to triviální analyzovat data v závislosti na kultuře uživatele, ale často chtějí také zobrazovat užitečné náznak, pokud jde o požadovaném formátu (především rozlišovat mezi yy a yyyy což je zaměnitelné většina kultur).

Jaký je nejlepší způsob, jak to udělat tak, že smysl pro většinu uživatelů (např dd / M / yyy je matoucí, protože změny v případě a přepínání mezi jedním a dvěma písmeny).

Položena 03/08/2008 v 18:30
zdroj uživatelem
V jiných jazycích...                            


7 odpovědí

hlasů
6

Stačí použít ISO-8601 . Je to mezinárodní 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
Odpovězeno 03/08/2008 v 19:18
zdroj uživatelem

hlasů
4

Musím souhlasit s OP ‚špatný‘ datumy opravdu jar s mým DD / MM / YYYY výchově a najdu ISO 8601 data a časy velmi snadné s ním pracovat. Pro jednou standardní dostali to správně a engtech má jasnou odpověď, která nevyžaduje lokalizaci.

Chystal jsem se hlásit vstupní formulář narozeniny přetečení zásobníku jako chybu, protože, jak moc pěst na oko, že je pro většinu světa.

Odpovězeno 04/08/2008 v 19:50
zdroj uživatelem

hlasů
2

Zde je můj současný způsob. Nějaké návrhy?

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");
Odpovězeno 03/08/2008 v 18:31
zdroj uživatelem

hlasů
1

Krátká forma je pohodlné a pomáhá vyhnout pravopisné chyby. Lokalizovat podle potřeby, ale být jisti, že se zobrazí očekávaný formát (nenechávat uživatele blind). Poskytnout kontrolu nad data-sběrač jako volitelnou pobočník vyplňování pole.

Jako další, on-the-fly analýzu a zobrazení data na dlouhé formy by mohly pomoci také.

Odpovězeno 04/08/2008 v 20:13
zdroj uživatelem

hlasů
1

Potíž s mezinárodními standardy je, že skoro nikdo je používá. Snažím se, kde můžu, ale já jsem nucen používat DD / MM / YYYY téměř všude v reálném životě, což znamená, že jsem tak zvyklý na to, že je to vždy vědomý proces použít ISO-8601. Pro většinu lidí, kteří nemají ani se snaží používat ISO-8601 je to ještě horší. Pokud můžete mezinárodní úrovni, kde je to možné, myslím, že to je velká výhoda.

Odpovězeno 04/08/2008 v 09:14
zdroj uživatelem

hlasů
1

Jak o tom dát formát (mm / dd / rrrr nebo dd / mm / rrrr) následovaný výpisu z dnešního dne v kultuře uživatele. MSDN má článek o formátování DateTime pro kulturu osoby , pomocí objektu CultureInfo, které by mohly být užitečné v tom to. Kombinace formátu (což většina lidí jsou obeznámeni s) v kombinaci s aktuálním datem zastoupené v tomto formátu musí být dost vodítko k osobě, o tom, jak by měli zadejte datum. (Také zahrnuje kontrolu kalendáře pro ty, kteří stále nemůžete přijít na to).

Odpovězeno 03/08/2008 v 18:37
zdroj uživatelem

hlasů
0

Nejlepší volba : Já bych místo toho doporučujeme použít standardní výběr data.

Alternativa : pokaždé, když obsah upravit kontrolních změn, analyzovat ji a zobrazení (v samostatném kontrolou?) Dlouhý formát data (tj vstup „09-03-04“ display „Vaše zadání: 04.03.2009“ )

Odpovězeno 19/09/2008 v 18:02
zdroj uživatelem

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