Avatar billede junold Nybegynder
03. november 2008 - 13:57 Der er 9 kommentarer og
1 løsning

C# .NET date format

Jeg skal have en dato, som alm dansk format.
Jeg bruger denne:
((DateTime)Eval("Dato")).ToString("d")

men får dette output: 7/16/2008

Hvordan er kommandoen til dansk tidsformat?
Avatar billede aaberg Nybegynder
03. november 2008 - 13:59 #1
prøv:

((DateTime)Eval("Dato")).ToString("dd/MM-yyyy")
Avatar billede junold Nybegynder
03. november 2008 - 14:07 #2
Hmm, nej den siger: DataBinding: 'System.Data.DataRowView' indeholder ikke en egenskab med navnet 'Dato'.
Avatar billede aaberg Nybegynder
03. november 2008 - 14:18 #3
Det er vel ikke ToString-delen som fejler!? Det lyder mere som om det er Eval("Dato") som fejler.
Avatar billede junold Nybegynder
03. november 2008 - 14:31 #4
Burde man ikke bare kunne tilføje en anden parameter i stedet for "d" ?
Avatar billede aaberg Nybegynder
03. november 2008 - 14:47 #5
"d" er en format string. Den siger det skal være en dato, og som standard viser den amerikansk format. Læs om standard format strings her:
http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

Hvis du vil have 100% frihed, kan du bruge en custom format string, som den jeg foreslår i min kommentar 13:59:09. Dog ser jeg at jeg har lavet en lille tastefejl i strengen. Den skal være "dd-MM-yyyy". dd står for dag, MM står for måned og yyyy står for år. På denne måde kan du skifte stregerne ud med f.eks. et punktum "dd.MM.yyyy", hvis du synes dette er pænere. Se dokumentationen:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Hvis du vil bruge standard format strengen "d", skal du give et kultur object med, som angiver hvilket landeformat datoen skal vises i. En lille test:

string formateretDato = DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("da-DK"));
Avatar billede junold Nybegynder
03. november 2008 - 15:23 #6
Jeg forstår bare ikke helt hvorfor eval("dato") pludselig fejler, når man bruger den der custom dtring format?
Avatar billede junold Nybegynder
03. november 2008 - 15:37 #7
Ah sorry sorry, det er mig der sidder og er dum nu.

Det virker helt fint!  Svar for point! :)
Avatar billede aaberg Nybegynder
04. november 2008 - 08:22 #8
:-)
Avatar billede arne_v Ekspert
07. november 2008 - 03:30 #9
Det er værd at bemærke at / og : ikke nødvendigvis udskriver / og : men derimod
udskriver dato separator og tid separator i den culture der bruges.
Avatar billede aaberg Nybegynder
07. november 2008 - 10:14 #10
arne_v har helt ret. Så hvis man ville have det output ud, som jeg foreslår i min kommentar 03/11-2008 13:59:09, skulle man ændre strengen til dd"/"MM-yyyy. At sætte "" rundt tegn som ellers er reserverede, fortæller at man vil bruge tegnet og ikke den reserverede betydning.

i en C# sting, bliver dd"/"MM-yyyy til "dd\"/\"MM-yyyy".
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
Kurser inden for grundlæggende programmering

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