2/22/2012 3:30:00
当然,这是一种可以使用Convert.ToDateTime()转换为DateTime的格式吗?
答案 0 :(得分:9)
我个人会避免使用Convert.ToDateTime
。我通常更喜欢 1 来使用DateTime.TryParseExact
,指定您期望的文化和格式字符串 - 假设您具有预期的格式,当然。如果你不这样做,你必须问自己更大的问题。
例如:
DateTime value;
if (DateTime.TryParseExact(text, "M/d/yyyy H:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out value))
{
Console.WriteLine("Parsed to {0}", value);
}
else
{
Console.WriteLine("Failed to parse");
}
这是一个稍微奇怪的格式开始 - 通常24小时格式包括一小时的前导0,而12小时格式将包括上午/下午指示符。
1 好吧,我更喜欢使用Noda Time,但这是另一回事......
答案 1 :(得分:4)
当然,这是一种可以使用Convert.ToDateTime()转换为DateTime的格式吗?
当然不是。对某些区域设置来说也是如此,例如我有一个fr-FR
区域设置,这是一个无效的日期。一年中没有22个月。确保在解析日期时指定格式。您可以使用TryParseExact方法。
答案 2 :(得分:1)
如果您将有关年份,月份等的信息分别作为整数获取,我宁愿使用DateTime的构造函数。
DateTime myDateTime = new DateTime(year, month, day, hour, minute, second);
通常没有什么可以出错...
答案 3 :(得分:0)
如果您提供指定文化的IFormatProvider(例如,在这种情况下为en-US),它应该能够。
var date = Convert.ToDateTime("2/22/2012 3:30:00", CultureInfo.GetCultureInfo("en-US"));
答案 4 :(得分:0)
以下是如何使用Convert.ToDateTime()的示例,它将帮助您理解它:
Convert.ToDateTime example
或者您可以尝试以下示例:
Convert String to DateTime
答案 5 :(得分:0)
这对我来说很好用:
DateTime dt = Convert.ToDateTime("2/22/2012 3:30:00");
Console.WriteLine(dt.ToShortDateString());
Console.WriteLine(dt.ToShortTimeString());
当然,我并没有像Darin所说的那样关注本地化