0

当我试图将 PDT 时间转换为en-US文化时,它不起作用。

 DateTime.Parse("Wed, 08 Jun 2012 12:14:14 PDT",new CultureInfo("en-US"));

但这是有效的

 DateTime.Parse("Wed, 08 Jun 2012 12:14:14",new CultureInfo("en-US"));
4

1 回答 1

1

您不能在 中使用时区DateTime.Parse(),但可以单独处理它们。

尝试这个:

var time =  DateTime.Parse("Fri, 08 Jun 2012 12:14:14",new CultureInfo("en-US"));
var zone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var pdtTime = TimeZoneInfo.ConvertTimeFromUtc(time, zone);

更新 1:哎呀,弄错了。这是(正确的)对应物:

var enUsTime = TimeZoneInfo.ConvertTimeToUtc(pdtTime, zone);

哦,顺便说一句-您的原始示例不起作用,因为08 Jun 2012不是 a Wed,而是 a Fri... ;)

更新 2:

如果您只需要一个 TimeDate,那么您可以解析如下(lin

using System.Linq; // Include a ref to LINQ

(...)

var originalDate = "Fri, 08 Jun 2012 12:14:14 PDT";
// Use LINQ to fetch the first 25 characters (ignoring "PDT"):
var dateToParse = new string(originalDate.Take(25).ToArray());
var result = DateTime.Parse(dateToParse, new CultureInfo("en-US"));
于 2013-05-08T07:22:38.213 回答