C# 尝试转换PDT时间时发生日期时间转换错误

C# 尝试转换PDT时间时发生日期时间转换错误,c#,C#,当我试图将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.Pars

当我试图将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);
哦,顺便说一句,您最初的示例将不起作用,因为
2012年6月8日
不是
Wed
,而是
Fri
。)

更新2:

如果您只需要一个TimeDate,那么您可以按如下方式进行解析(lin


这是因为
Parse
无法识别区域缩写,您必须将其删除或将其转换为相关偏移量(必须使用
ParseExact
)谢谢,有没有办法从这个字符串解析
DateTime
?谢谢,我要求的是将
Wed,2012年6月8日12:14:14 PDT
转换为
en-US
文化。但是在你的
DateTime.parse
中你错过了
PDT
你能检查你的代码吗,
utcNow
?我要求从
PDT
转换为
 您的代码是反向的谢谢,我将只使用这个日期时间字符串
Fri,08 Jun 2012 12:14:14 PDT
,而不是
Fri,08 Jun 2012 12:14:14
。您能检查一下您的第一行代码吗?好吧,我想我误解了。但是,您希望得到什么结果呢?如果您想要的是带有原始名称的
日期时间
l date,那么你就不能像在原始帖子的第二行代码中那样解析子字符串吗?
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"));