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时间的链接优缺点