澳大利亚东部标准时间通常写作 UTC+10,AEST 是它的标准时缩写。悉尼和墨尔本在夏季会切到 AEDT,而昆士兰全年保持 AEST。

有地点名的时候就用地点名

写代码或保存用户偏好时,优先用 Australia/Sydney,而不是缩写或裸偏移。IANA 时区携带了一个地区完整的历史规则和夏令时规则;偏移只告诉你某一刻和 UTC 差多少。

转换一个 epoch 值

Unix 时间戳本身就是一个瞬间。想在这个时区里显示它,数值原样不动,只用选定的 IANA 名字去格式化。钟面显示会变,事件本身不会。

const date = new Date(1700000000 * 1000);

const text = new Intl.DateTimeFormat("zh-CN", {
  dateStyle: "medium",
  timeStyle: "medium",
  timeZone: "Australia/Sydney",
}).format(date);

关于排程

如果一个会议或定时任务是按当地钟面时间定义的,请把 IANA 时区和日程一起存。如果它是一次性事件,就存换算出来的 UTC 瞬间或 Unix 时间戳。把这两种情况分开,夏令时切换才不会变成一次意外改期。