Pretvarjanje oblikovanega niza dd/mm/yyyy v Datetime
Sem novinec v DotNetu in C#. Želim pretvoriti niz v formatu mm/dd/yyyy
v objekt DateTime
. Poskusil sem s funkcijo parse, kot je opisana spodaj, vendar se pojavi napaka med izvajanjem.
DateTime dt=DateTime.Parse("24/01/2013");
Ali imate kakšno idejo, kako naj ga pretvorim v datetime?
95
3
Uporabiti morate
DateTime.ParseExact
z obliko"dd/MM/yyyy"
Varneje je, če za format uporabite
d/M/yyyy
, saj bo ta oblika obdelala tako enomestne kot dvomestne številke dneva/meseca. Vendar je to odvisno od tega, ali pričakujete enomestne/dvomestne vrednosti.Vaš format datuma
dan/mesec/leto
je lahko za nekatere kulture sprejemljiv format datuma. Na primer, za kanadsko kulturoen-CA
biDateTime.Parse
deloval kot:Ali .
Obe zgornji vrstici bi delovali, ker je oblika niza sprejemljiva za kulturo
en-CA
. Ker klicuDateTime.Parse
ne posredujete nobene kulture, se za razčlenjevanje uporabi vaša trenutna kultura, ki ne podpira oblike datuma. Več o tem preberite na DateTime.Parse.Druga metoda za razčlenjevanje je uporaba
DateTime.TryParseExact
Skupina metod
TryParse
v ogrodju .Net ne vrže izjeme ob neveljavnih vrednostih, temveč vrne vrednostbool
, ki označuje uspeh ali neuspeh pri razčlenjevanju.Zaznamenite, da sem za dan in mesec uporabil enojni
d
inM
. Enojnid
inM
delujeta tako za enomestne/dvomestne številke dneva in meseca. Tako so za formatd/M/yyyy
veljavne vrednosti:Za nadaljnje branje si oglejte: Nizi za oblikovanje datuma in časa po meri
uporaba
DateTime.ParseExact
null
bo uporabil trenutno kulturo, kar je nekoliko nevarno. Poskusite navesti določeno kulturoUporabite lahko format
"dd/MM/yyyy"
za uporabo vDateTime.ParseExact
.Tukaj je
DEMO
.Za več informacij si oglejte
Način oblikovanja datumskih in časovnih nizov po meri
.