繁体   English   中英

DateTime.TryParseExact返回false

[英]DateTime.TryParseExact returning false

我正在尝试使用DateTime.TryParseExact获取DateTime格式

DateTime logDate;

DateTime.TryParseExact(
    string.Format("{0}/{1}/{2}", day, month, ddlYear.SelectedValue),
    "dd/MM/yyyy",
    null,
    System.Globalization.DateTimeStyles.None,
    out logDate);

它返回false 我想念什么吗?

例如,day = 01,month = 02,year = 2013

很难确切说明问题所在,但您应该尝试将DateTimeFormatInfo.InvariantInfo指定为DateTime.TryParseExact参数:

DateTime.TryParseExact(
    "20/12/2013",
    "dd/MM/yyyy",
    System.Globalization.DateTimeFormatInfo.InvariantInfo,
    System.Globalization.DateTimeStyles.None,
    out logDate);

这是因为/在模式字符串中具有特殊含义:

“ /”自定义格式说明符表示日期分隔符,用于区分年,月和日。 从当前或指定区域性的DateTimeFormatInfo.DateSeparator属性中检索适当的本地化日期分隔符。

自定义日期和时间格式字符串中的内容: “ /”自定义格式说明符

有一个机会,培养你在运行你的应用程序已日期分隔符不同,那么/本身。

我猜天和月是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"

字符串表示形式的格式必须与指定的格式完全匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM