【问题标题】:How to convert UTC to Australian Eastern Daylight Time (AEDT)? [duplicate]如何将 UTC 转换为澳大利亚东部夏令时间 (AEDT)? [复制]
【发布时间】:2019-04-25 07:55:25
【问题描述】:

我们正在从我们的贸易伙伴的 API 下载数据。到目前为止,我们一直在使用“E. Australia Standard Time”,并且运行良好。

夏令时开始后,我们的贸易伙伴表示他们正在使用“澳大利亚东部夏令时间 (AEDT)”。

我使用以下代码将 UTC 转换为“东澳大利亚标准时间”。

DateTime utcTime = DateTime.UtcNow;
TimeZoneInfo objTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time");
DateTime TPDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, objTimeZoneInfo);

但是当我使用“E. Australia Daylight Time”或“Australian Eastern Daylight Time (AEDT)”时出现以下错误

The time zone ID 'E. Australia Daylight Time' was not found on the local computer.
The time zone ID 'Australian Eastern Daylight Time (AEDT)' was not found on the local computer.

我应该将什么时区 ID 传递给 FindSystemTimeZoneById() 方法才能正确转换为澳大利亚东部夏令时间 (AEDT)?

【问题讨论】:

  • 嗯,你的第一个有错字。代林?当然,我不知道它是否会更好地工作。
  • 您不能使用不存在的时区。时区指的是冬季或夏季时间。 same 时区有规则在冬季或夏季控制其偏移
  • 为什么要问这个问题?你在"E. Australia Standard Time" 上打错时间了吗?
  • @Yash 顺便说一句,如果您真的关心时区,请使用 NodaTime 库和 IANA timezone namesAustralia/Melbourne 比 Windows 时区名称更清晰。 IANA 时区数据库和名称已成为事实上的标准
  • 按照以下链接接受的答案:TimeZoneInfo.ConvertTime from PST to UTC to AEST

标签: c# timezone timezone-offset


【解决方案1】:

您可能希望使用“澳大利亚东部标准时间”(堪培拉、霍巴特、墨尔本和悉尼)。尽管名称中有“标准”一词,但它考虑了夏令时并在冬季使用 UTC+10,在夏季使用 UTC+11:

var tz = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");

TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2018,1,1,0,0,0,DateTimeKind.Utc), tz); 
    // => 01/01/2018 11:00:00
TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2018,7,1,0,0,0,DateTimeKind.Utc), tz); 
    // => 01/07/2018 10:00:00

“东澳大利亚标准时间”时区适用于布里斯班,他们不遵守夏令时。

您可以使用TimeZoneInfo.GetSystemTimeZones() 方法或在命令行中运行tzutil /l 来获取可用时区的完整列表。

【讨论】:

  • 这是一个很好的例子,为什么应该使用 NodaTime 和 IANA 时区名称!
  • 非常感谢,我想我得到了答案。我还有一个问题。夏令时完成后..“AUS Eastern Standard Time”会给我标准时差(UTC+10:00)吗?
  • @Yash 正如 Panagiotis 所说,规则内置在 TimeZoneInfo 中(检查对象的属性)。
  • @Yash 是的。时区包括定义时钟向前和向后设置的规则。它将为您转换的日期和时间使用适当的标准或夏令时偏移量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2015-07-29
  • 2021-12-23
  • 2014-06-02
相关资源
最近更新 更多