C# 尝试转换PDT时间时发生日期时间转换错误
当我试图将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
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"));