我正在尝试将此日期字符串 2015年4月9日:15:16:17 以此格式显示 09/04/2015 15:16:17 。这就是我的尝试。
DateTime dtDateTime = new DateTime();
string dateString = "09 Apr 2015: 15:16:17";
DateTime dateValue;
DateTime.TryParse(dateString, out dateValue);
dtDateTime = dateValue;
这是输出 01/01/0001 00:00:00
我认为TryParse
会将dateString
值转换为所需的DateTime
格式。我做错了什么?
答案 0 :(得分:3)
你应该这样做:
DateTime dtDateTime = new DateTime();
string dateString = "09 Apr 2015: 15:16:17";
DateTime dateValue;
if (DateTime.TryParseExact(dateString, @"dd MMM yyyy':' HH':'mm':'ss",
new CultureInfo("en-us"), DateTimeStyles.None, out dateValue))
dtDateTime = dateValue;
使用TryParseExact
,您可以提供自定义日期格式字符串以匹配您的输入日期。在上面的示例中,我在年后添加了额外的:
。
此外,您必须使用可以了解您的月份名称的CultureInfo
;在这里我假设你有一个英文格式的日期。
答案 1 :(得分:0)
您需要指定格式,因为它不是标准的日期格式字符串:
DateTime.TryParseExact(
dateString,
"dd MMM yyyy: HH:mm:ss",
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out dateValue);
此外,您应该检查自TryParse
和TryParseExact
返回true
/ false
答案 2 :(得分:0)
您可以使用TryParseExact
方法:
DateTime.TryParseExact(dateString, "dd MMM yyyy: HH:mm:ss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.AllowWhiteSpaces,
out dtDateTime);
提示: