Datoformat i et Windowsprogram

Tags:    c# winforms datoformat

Jeg har et kæmpeproblem omkring datoformater i mit winforms program der er lavet i C#.

Jeg har en XML fil som ser ud som denne med x antal <theme> tags:

Fold kodeboks ind/udXML kode 


Problemet er nu at jeg har en til at teste på en pc men fransk datoformat som er dd/mm/åååå i stedet for dd-mm-åååå. Hans XML fil ser sådan ud:

Fold kodeboks ind/udXML kode 


I min C# kode læser jeg dem ind sådan her (jeg har udeladt selve læsningen fra XML filen og loopet, da det er uinteressant ifm. problemet):

Fold kodeboks ind/udCSharp kode 


Som i kan se, parser jeg efter at datoformatet er dd-mm-yyyy hvilket er noget skrammel som jeg lavede inden det skulle bruges internationalt.

Hvordan styrer man forskellige datoformater i et C# program, hvor det skal virke efter det datoformat som Windows er sat op efter?

På forhånd tak.



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvorfor ikke bare sætte en standard, for hvilken datoformat du bruger, når du opretter nodes i dit XML dokument?

F.eks

Fold kodeboks ind/udCSharp kode 




Indlæg senest redigeret d. 15.05.2011 23:08 af Bruger #16594
Hvis du bruker DateTime.Parse (i stedet for ParseExact), så vil .net bruke current culture til å tolke datoen. Hvis programmet ikke klarer å parse vil en FormatException bli kastet.

Du kan også bruke en overload av DateTime.Parse som tar inn en CultureInfo instance, som da vil bli brukt.

Se http://msdn.microsoft.com/en-us/library/2h3syy57.aspx



En hurtig update efter en google (skulle jeg nok have gjort først):

Dette skulle kunne finde datoformatet på pc'eren:


Fold kodeboks ind/udCSharp kode 


Men jeg ved dog ikke hvilket property jeg skal bruge for at returnere i det rigtige format som skal bruges :-( Det er ihvertfald ikke ShortDatePattern.

Så gode ideer til hvordan man korrekt bruger cultureinfo er velkommen.







Indlæg senest redigeret d. 15.05.2011 22:36 af Bruger #9814
@ebb: Tak for den nemme løsning som vil virke. Det er ikke altid at man kan se skoven for bare træer.

Men nu er jeg godt igang med at kigge på CultureInfo og må vist hellere få lært lidt mere :-)

Og tak for info Torbjørn. Jeg er i gang med at prøve lidt med eksemplerne fra dit link.



Datoer i xml bør gemmes som "SortableDateTimePattern"
: DateTime.ToSTring("s")


http://www.w3.org/TR/xmlschema-2/#isoformats

Så kan de let behandles gennem xslt og andre standarder.

/J



t