关于c#:本地到GMT日期时间转换

Local to GMT DateTime Conversion

我正在使用Amazon API。 我需要将本地时间(EDT)转换为符合亚马逊以下文档的DateTime:

1
2
3
4
5
6
7
You can specify the FulfillmentDate with or without time zone information:

2006-12-11T09:50:00 - local time zome applies
2006-12-11T09:50:00+02:00 - GMT time zone applies

For locales affected by Daylight Saving  Time, adjust the information, if necessary.
Daylight Saving Time is not automatically taken into consideration.

我认为我需要做这样的SO线程中显示的内容,但显然是错误的,因为当我使用该方法上传日期时,亚马逊会在前一天显示它。 我可以通过使用这个在线转换工具来确认这一点。

例如:

  • 我当地的时间是"7/25/2012 00:00:00"(美国东部时间)。

  • 使用上面的SO方法,并格式化,现在
    "2012-07-25T01:00:00-04:00"。

  • 但它转换到24日,特别是"2012年7月24日星期二
    21:00:00"。

显然我在这里做错了 - 如果有人可以开导我,我会很感激。

谢谢!


显然,亚马逊将您当地的时间信息转换回UTC时间(这是基于您在4小时后回来的输入:2012年7月24日星期二21:00:00,因此正确)。

你有什么结果?


我建议使用:

1
String xmlDateString = XmlConvert.ToString(DateTime.UtcNow,XmlDateTimeSerializationMode.Local);


我想我可以介绍Jon Skeet写的"joda time"项目。 您可以参考joda时间的链接优缺点