7
Jan
Tags: .NET | 7 Comments »
Zjištění 12h nebo 24h formátu???
Zdá se, že soudruzi někde udělali chybu. Pokoušel jsem se zjistit, jestli daná culture používá 12h nebo 24h formát. Ale kde nic, tu nic – žádná chytrá property. Takže jedině hackovat, porovnávat všelijak nehezky stringy pro hodiny.
Nebo jsem něco přehlédl (a další dva vývojáři)?



There's 7 Comments So Far
January 8th, 2009 at 23:18
Pokud to v .NET-u není, pak asi jedině interop na GetLocaleInfo(…) a LOCALE_ITIME konstantu. Nicméně nezkoušel jsem to.
January 8th, 2009 at 23:32
Nestacilo by checknut ci je nejaka hodnota v CultureInfo.DateTimeFormat.AMDesignator alebo PMDesignator?Ale to je len predpoklad, ze maju podporu, inak uplne staci checknut ci hocijaky pattern s time v nazve v DateTimeFormat konci na “tt”
January 8th, 2009 at 23:36
Bohuzel nestacilo. AMDesignator vraci pro cechy napr. “dop.”, takze z toho prd poznam.
Puvodne jsem taky myslel, ze by pro 24h locales mohl byt prazdny, jenze … Stejne je to s “tt”.
January 8th, 2009 at 23:48
tak potom by malo stacit .Contains(“h”) == 12 h format
January 9th, 2009 at 12:40
A nestačilo by si vygenerovat time objekt s hodnotou času např. 22:00, nechat to vyrenrderovat do stringu s defaultním nastavením a podívat se, zda je ve stringu text “10″ nebo “22″?
January 9th, 2009 at 14:42
Tak mělo by stačit toto, pokud se bavíme o net.DateTimeFormatInfo.CurrentInfo.LongTimePattern.Contains(‘h’)DateTimeFormatInfo.CurrentInfo.ShortTimePattern.Contains(‘h’)pripadně další patternz.. jako FullDateTimePattern a pod.Pokud je tam malé ‘h’, pak je 12h. v případě velkého ‘H’ je formát 24hod.
January 22nd, 2009 at 00:20
Jasny, vim jak to vyresit. Vsechny napady dobry. Moznosti je plno. Jen jsem byl prekvapen, ze zadna takova handy property neni.
Share your thoughts, leave a comment!