Avatar billede nickbuus Nybegynder
28. december 2007 - 23:37 Der er 15 kommentarer og
1 løsning

konvertering af dato

06-jan-08
17-feb-08
06-mar-08
har c# noget indbygget kode der kan benyttes til at konvertere ovenstående til yyyy-mm-dd
Avatar billede Syska Mester
29. december 2007 - 01:17 #1
DateTime dt = DateTime.Parse("06-jan-08");
            Console.WriteLine(dt.ToString());
Avatar billede Syska Mester
29. december 2007 - 01:18 #2
Console.WriteLine(dt.ToString("yyyy-MM-dd"));
Avatar billede arne_v Ekspert
29. december 2007 - 01:27 #3
DateTime.Parse(s, "dd-MMM-yy").ToString("yyyy-MM-dd")

og hvis det er til en database, så bør du bruge parameters i.s.f. !

Hvis måneds navnene ikke matcher dit default language, så skal Parse have et tredie
argument af type CultureInfo.
Avatar billede Syska Mester
29. december 2007 - 01:34 #4
ohhh, så lærte jeg noget ....

Men parameter 2 ... er en IFormatProvider ... du smider en string :-s
Avatar billede bvli Praktikant
29. december 2007 - 02:06 #5
Arj.. I må helt seriøst mene DateTime.ParseExact(..)

Jeg kan ikke i min vildeste fantasi forestille mig, at nogen bruger DateTime.Parse i produktions-kode.. (eller for den sags skyld forudsætter noget om default culture info)?!

/B :)
Avatar billede arne_v Ekspert
29. december 2007 - 02:12 #6
Det begynder at hænge sammen !

Det er netop DateTime.ParseExact der tager en format string - ikke DateTime.Parse - og
CultureInfo skal vist med.
Avatar billede Syska Mester
29. december 2007 - 03:07 #7
bvli#
Ja, rolig ... kold vand.

Nu blev der ikke sagt noget om produktions kode ... ej heller andet ... tog den simpleste vej til Rom.

Men jeg kan da godt se det fornuftige i det du siger ... man burde altid bruge det ... så jeg har også lært noget i dag.

// ouT
Avatar billede Syska Mester
29. december 2007 - 03:11 #8
Men hvis man gør sådan:
DateTime dt = DateTime.ParseExact("06-jan-08", "dd-MMM-yy", new CultureInfo("da-DK"));

Så har man vel allerede angivet at dag-måned-år .... er da-DK så ikke overflødig her ... synes ikke lige det hænger sammen i min hjerne ...

altså vel også mærket hvis den bruger "dd-MMM-yy" til noget fornuftigt
Avatar billede arne_v Ekspert
29. december 2007 - 04:10 #9
Problemet er at 3 bostavs forkortelse for måneder er sprog specifikke.

Dansk og engelsk ligner hinanden men der er forskel på may-maj og oct-okt.

Jeg tør slet ikke tænke på hvordan det er på fransk.
Avatar billede nickbuus Nybegynder
29. december 2007 - 08:41 #10
det skal kunne fungere både på engelsk og dansk - det nævnte jeg jo godt nok ikke noget om. tak alle - buzzzz og arne_v i kan dele pointene. tak for hjælpen
Avatar billede nickbuus Nybegynder
29. december 2007 - 08:44 #11
DateTime dt = DateTime.ParseExact("06-jan-08", "dd-MMM-yy", new CultureInfo("da-DK"));
- hvordan får jeg dt konverteret til yyyy--MM-dd ?
dt.ToString("yyyy-MM-dd"); - sådan?
Avatar billede Syska Mester
29. december 2007 - 09:41 #12
ja
Avatar billede nickbuus Nybegynder
02. januar 2008 - 21:58 #13
system.formatexception strengen blev ikke godkendt som en gyldig datetime.
den fejl opstår når jeg kører følgende linie:
DateTime dt = DateTime.ParseExact("06-jan-08", "dd-MMM-yy", new CultureInfo("en-gb"));
Avatar billede arne_v Ekspert
02. januar 2008 - 22:28 #14
Weird - den eksakt samme kode virker her. Dog paa 1.1 - jeg tester paa noget nyere senere.
Avatar billede arne_v Ekspert
03. januar 2008 - 04:50 #15
Her virker den også.
Avatar billede nickbuus Nybegynder
03. januar 2008 - 08:08 #16
jeg havde overset et whitespace i inputstrengen " 06-jan-08"
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester