0

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

您可以指定带或不带时区信息的 FulfillmentDate:

2006-12-11T09:50:00 - 本地时区适用
2006-12-11T09:50:00+02:00 - GMT 时区适用

对于受夏令时影响的地区,如有必要,请调整信息。
不会自动考虑夏令时。

我以为我需要做一些类似于此 SO 线程中所示的事情,但显然是错误的,因为当我使用该方法上传日期时,亚马逊将其显示为前一天。我可以通过使用这个在线转换器工具来确认这一点。

例如:

  • 我的当地时间是“2012 年 7 月 25 日 00:00:00”(美国东部时间)。

  • 使用上述 SO 方法,并格式化,现在是“2012-07-25T01:00:00-04:00”。

  • 但它会转换为 24 日,特别是“2012 年 7 月 24 日星期二 21:00:00”。

显然我在这里做错了什么 - 如果有人能启发我,我将不胜感激。

谢谢!

4

3 回答 3

1

我建议使用:

String xmlDateString = XmlConvert.ToString(DateTime.UtcNow,XmlDateTimeSerializationMode.Local);
于 2012-07-26T10:10:38.220 回答
1

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

你期待的结果是什么?

于 2012-07-26T18:05:26.850 回答
0

我想我可以介绍一个由 Jon Skeet 编写的“joda time”项目。可以参考joda time的链接利弊

于 2012-07-26T09:55:42.640 回答