[英]Parse month and date from string DateTime
假設您有這種格式的字符串。
1月11日,“ 111”,11月1日,“ 1101”,10月13日,“ 1013”等
因此,基本上所有您想解析的內容都存儲在日期和月份的兩個變量中。
我不需要解析代碼,我可以輕松地做到這一點。 我只是想知道是否有人知道使用DateTime.TryParse()之類的方法來實現此目的。
干杯
使用DateTime可能是這樣的
string value = "111";
if (value.Length < 4) value = "0" + value;
DateTime dt;
if (DateTime.TryParseExact(value, "MMdd",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) {
int month = dt.Month;
int day = dt.Day;
}
但老實說,最好還是手動解析字符串。 如果要將日期和月份部分包含在兩個單獨的變量中,則只是使用不需要的DateTime引入開銷(可能很小)。
int value = 111;
int month = value / 100;
int day = value % 100;
if (month > 12)
throw new Exception("Invalid Month " + month.ToString());
if (day > DateTime.DaysInMonth(year, month))
throw new Exception("Invalid Day " + day.ToString());
您應該能夠使用ParseExact或TryParseExact做到這一點。
我認為您的示例無法正常工作,它拒絕將111解析為1月11日,而將其解析為10月1日。如果您在日期的兩個部分都堅持使用兩位數字,那應該更干凈。
DateTime parsedDate;
if (DateTime.TryParseExact("0111", "MMdd", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out parsedDate))
{
// do something with parsedDate.Month and parsedDate.Day
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.