Daugiau
dd/mm/yyyy formatuotos eilutės konvertavimas į Datetime
Esu naujokas DotNet ir C#. Noriu konvertuoti eilutę mm/dd/yyyy
formatu į DateTime
objektą. Išbandžiau parsavimo funkciją, kaip nurodyta toliau, bet ji meta vykdymo klaidą.
DateTime dt=DateTime.Parse("24/01/2013");
Gal turite idėjų, kaip galėčiau konvertuoti ją į datatime?
95
3
Reikia naudoti
DateTime.ParseExact
su formatu"dd/MM/yyyy"
Saugiau naudoti
d/M/yyyy
formatą, nes jis tinka ir vienaženkliams, ir dviženkliams dienos/mėnesio skaičiams. Tačiau tai iš tikrųjų priklauso nuo to, ar tikitės vienaženklės ar dviženklės reikšmės.Jūsų datos formatas
diena/mėnuo/metai
gali būti priimtinas datos formatas kai kuriose kultūrose. Pavyzdžiui, Kanados kultūraien-CA
DateTime.Parse
veiktų taip:Arba
Abi pirmiau pateiktos eilutės veiktų, nes eilutės's formatas yra priimtinas
en-CA
kultūrai. Kadangi jūs nepateikiate jokios kultūrosDateTime.Parse
skambučiui, jūsų dabartinė kultūra naudojama analizavimui, kuris nepalaiko datos formato. Daugiau apie tai skaitykite DateTime.Parse.Kitas parsavimo būdas - naudoti
DateTime.TryParseExact
.TryParse
metodų grupė .Net struktūroje nemeta išimčių dėl negaliojančių reikšmių, o grąžinabool
reikšmę, nurodančią, ar parsavimas pavyko, ar ne.Atkreipkite dėmesį, kad dienai ir mėnesiui atitinkamai naudojau viengubus
d
irM
. Vienaženkliaid
irM
tinka tiek vienaženkliams, tiek dviženkliams dienos ir mėnesio skaičiams. Taigi formatod/M/yyyy
galiojančios reikšmės gali būti:Daugiau informacijos rasite čia: Pasirinktinės datos ir laiko formato eilutės
naudoti
DateTime.ParseExact
null
naudos dabartinę kultūrą, o tai šiek tiek pavojinga. Pabandykite nurodyti konkrečią kultūrąGalite naudoti
"dd/MM/yyyy"
formatą, jei norite jį naudotiDateTime.ParseExact
.Čia pateikiamas
DEMO
.Daugiau informacijos rasite
Custom Date and Time Format Strings
.