我正在尝试使用DateTime
DateTime.TryParseExact
格式
DateTime logDate;
DateTime.TryParseExact(
string.Format("{0}/{1}/{2}", day, month, ddlYear.SelectedValue),
"dd/MM/yyyy",
null,
System.Globalization.DateTimeStyles.None,
out logDate);
它正在返回false
。我错过了什么吗?
e.g。 day = 01,month = 02,year = 2013
答案 0 :(得分:3)
很难确切地说出问题所在,但您应该尝试将DateTimeFormatInfo.InvariantInfo
指定为DateTime.TryParseExact
参数:
DateTime.TryParseExact(
"20/12/2013",
"dd/MM/yyyy",
System.Globalization.DateTimeFormatInfo.InvariantInfo,
System.Globalization.DateTimeStyles.None,
out logDate);
那是因为/
在你的模式字符串中有特殊含义:
“/”自定义格式说明符表示日期分隔符,用于区分年,月和日。从当前或指定文化的
来自自定义日期和时间格式字符串的DateTimeFormatInfo.DateSeparator
属性中检索适当的本地化日期分隔符。
您运行应用程序的文化有可能与日期分隔符不同/
本身。
答案 1 :(得分:1)
我猜日期和月份的类型为int
,因此无法识别结果,因此最好使用d/M/yyyy
格式。
DateTime.TryParseExact(
string.Format("{0}/{1}/{2}", day, month, ddlYear.SelectedValue),
"d/M/yyyy",
null,
System.Globalization.DateTimeStyles.None,
out logDate);
你的字符串应该是"1/2/2013"
The format of the string representation must match the specified format exactly.