C# 将英国日期时间转换为美国日期时间

C# 将英国日期时间转换为美国日期时间,c#,datetime,C#,Datetime,我的Windows XP计算机上的当前区域设置为英语(英国)。 使用我的C#应用程序,如何将值为2012年5月31日的DateTime对象转换为USDateTime对象,即2012年5月31日? 不设置Thread.CurrentThread.CurrentCulture,这是否可行 谢谢。使用文化 看这里- 您需要导入System.Globalization以访问CultureInfo类。DateTime值没有区域性-它们不知道任何有关自身格式的信息。在解析和格式化区域性信息时指定它们。目前还

我的Windows XP计算机上的当前区域设置为英语(英国)。 使用我的C#应用程序,如何将值为2012年5月31日的
DateTime
对象转换为US
DateTime
对象,即2012年5月31日? 不设置
Thread.CurrentThread.CurrentCulture
,这是否可行

谢谢。

使用文化

看这里-


您需要导入
System.Globalization
以访问
CultureInfo
类。

DateTime
值没有区域性-它们不知道任何有关自身格式的信息。在解析和格式化区域性信息时指定它们。目前还不清楚你的价值从何而来,但要将其与美国文化融为一体,你只需使用以下内容:

CultureInfo us = CultureInfo.GetCultureInfo("en-US");
string text = dateTime.ToString("d", us); // d=short date format
请注意,只有在必须向用户显示信息时,才应执行此格式设置-尽可能长时间地将值保留为
DateTime
。例如,如果需要将其插入数据库,请将其用作参数化SQL语句中的参数值,而不是在SQL本身中包含文本表示

DateTime ukDateTimeFormat = DateTime.Parse("10/26/2009 06:47",      
System.Globalization.CultureInfo.GetCultureInfo("en-us"));
从UK格式到US格式,使用以下代码段

DateTime usDateTimeFormat = DateTime.Parse("26/10/2009 06:47", 
System.Globalization.CultureInfo.GetCultureInfo("en-gb"));

-1:答案不应该只是文档链接:
任何能让提问者走上正确方向的答案都是有帮助的。
@Brendan是的,但在这种情况下,这就像告诉某人“你需要使用编程”。此外,链接文章还建议改变线程的当前文化,这不是最好的方法(事实上,海报明确要求使用一种不使用此方法的方法)。感谢您提到Justin。在我的辩护中,在我发布回复后,该片段被添加到问题中。时区偏移是否重要?谢谢John。我需要DateTime对象传递给另一个方法。我尝试了以下操作,但usDateTime仍然包含日期为:“29/06/2012”,而不是“06/29/2012”:DateTime ukDate=DateTime.Parse(“29/06/2012”);CultureInfo us1=CultureInfo.GetCultureInfo(“en-US”);字符串text=ukDate.ToString(“d”,us1);//d=短日期格式DateTime usDate=DateTime.ParseExact(文本“d”,us1,System.Globalization.DateTimeStyles.None)@吉米:没有。它根本不包含字符串表示形式。您可能只是在调试器中查看,调试器将使用默认区域性将其转换为字符串。忽略该格式-
DateTime
值没有固有格式。真的,真的没有。看看
文本
而不是
us1
。谢谢你,乔恩。一如既往,你的答案很有见解!!:-)我一直在VS.Net中以调试模式查看输出。认为解决方案不起作用!当我运行这个程序时,它的工作状态和预期的一样。!我是否正确阅读了你的答案?第二个例子是否将英国格式转换为美国格式?因为您使用的
en gb
表明您正在从美国转换到英国
DateTime usDateTimeFormat = DateTime.Parse("26/10/2009 06:47", 
System.Globalization.CultureInfo.GetCultureInfo("en-gb"));