Konvertering av dd/mm/yyyy-formatert streng til datetime
Jeg er ny i DotNet og C#. Jeg ønsker å konvertere en streng i mm/dd/yyyy
format til DateTime
objekt. Jeg prøvde parse-funksjonen som nedenfor, men den kaster en kjøretidsfeil.
DateTime dt=DateTime.Parse("24/01/2013");
Noen ideer om hvordan kan jeg konvertere den til datetime?
95
3
Du må bruke
DateTime.ParseExact
med formatet"dd/MM/yyyy"
.Det er sikrere hvis du bruker
d/M/yyyy
for formatet, siden det vil håndtere både ensifret og tosifret dag/måned. Men det avhenger egentlig av om du forventer en- eller tosifrede verdier.Datoformatet
dag/måned/år
kan være et akseptabelt datoformat for noen kulturer. For eksempel for den kanadiske kulturenen-CA
vilDateTime.Parse
fungere som:Eller
Begge linjene ovenfor vil fungere fordi strengens format er akseptabelt for
en-CA
kultur. Siden du ikke leverer noen kultur tilDateTime.Parse
-kallet ditt, brukes din nåværende kultur til parsing som ikke støtter datoformatet. Les mer om dette på DateTime.Parse.En annen metode for parsing er å bruke
DateTime.TryParseExact
.TryParse
-gruppen av metoder i .Net-rammeverket kaster ikke unntak på ugyldige verdier, i stedet returnerer de enbool
-verdi som indikerer suksess eller feil i parsing.**Legg merke til at jeg har brukt enkelt
d
ogM
for henholdsvis dag og måned. Enkeltd
ogM
fungerer for både enkelt/dobbeltsifret dag og måned. Så for formatetd/M/yyyy
kan gyldige verdier være:For videre lesing bør du se: Egendefinerte dato- og tidsformatstrenger.
bruk
DateTime.ParseExact
.null
vil bruke den gjeldende kulturen, noe som er noe farlig. Prøv å levere en spesifikk kulturDu kan bruke formatet
"dd/MM/yyyy"
for å bruke det iDateTime.ParseExact
.Her er en
DEMO
.For mer informasjon, se
Custom Date and Time Format Strings
.