【发布时间】:2017-08-06 06:59:22
【问题描述】:
在我看来,我正在返回一个字符串,该字符串正在我的控制器中转换为 DateTime。字符串格式为“ddd MMM dd HH:mm:ss 'EST' yyyy”。
我正在像这样成功转换它:
var startDate = DateTime.ParseExact(_startDate, "ddd MMM dd HH:mm:ss 'EST' yyyy", CultureInfo.InvariantCulture);
model.StartDate = Convert.ToDateTime(startDate);
问题是时区可以是任何东西。我该如何解释呢?并非总是如此,它会是 'EST' 。例如,如果它是 EDT,它将引发异常。
示例输入字符串为:Mon Feb 20 00:00:00 EST 2017
编辑:也可以是ddd MMM d HH:mm:ss 'EST' yyyy的格式
这只会在美国和加拿大时区使用。
【问题讨论】:
-
你能提供一些示例输入
-
当变量已经是
DateTime时,为什么要调用Convert.ToDateTime? -
@GlobalJim - 为什么不呢?除了这 3 个字符之外,您清楚地知道字符串的 exact 格式。只需将它们从
_startDate..中取出即可。 -
顺便说一句,
EST或EDT不是时区名称。唯一标准化的时区名称是 IANA 时区数据库中的名称。如果您使用 ISO8601 格式而不是使用这些缩写,那会容易很多。
标签: c# asp.net-mvc datetime