当我试图将 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"));
当我试图将 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"));
您不能在 中使用时区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"));