c# - Particular DateTime exception -
i need convert datetime strings format "mmm-yy". i'm working culture "{es-es}".
it works fine month except march (in spanish marzo). throws me exception:
'convert.todatetime("mar-13")' threw exception of type 'system.formatexception' system.datetime {system.formatexception}
i've tried:
string format = "yyyymm"; datetime result; cultureinfo provider = cultureinfo.invariantculture; result = datetime.parseexact("mar-13", format, provider);
and this:
datetime date = convert.todatetime("mar-13");
this works fine example with:
"jun-13"
"feb-13"
"nov-13"
...
edit real problem with:
datetime date = convert.todatetime("ene-13"); -> ok
datetime date = convert.todatetime("feb-13"); -> ok
datetime date = convert.todatetime("mar-13"); -> crash
datetime date = convert.todatetime("abr-13"); -> ok
....
your date string "mar-13"
doesn't match format "yyyymm"
. format should mmm-yy
.
you should see: custom date , time format strings
in format
"mmm" - abbreviated name of month.
"yy" - year, 00 99.
edit:
for question why convert.todatetime("mar-13");
failing. need @ following lines of code:
var currentculture = new cultureinfo("es-es"); var monthnames = currentculture.datetimeformat.abbreviatedmonthnames; var dayofweeks = currentculture.datetimeformat.abbreviateddaynames;
if watch returned values in debugger, see culture es-es
there match between month name , day name , on mar
.
- marzo/march month
- martes/tuesday day
both of these uses same abbreviation i.e. mar
. since convert.todatetime
try use possible formats string fails recognize mar
month or day name. why exception.
it idea use datetime.parseexact
, specify single or multiple possible formats.
Comments
Post a Comment