【问题标题】:User friendly timezone names from tz database format来自 tz 数据库格式的用户友好时区名称
【发布时间】:2011-10-01 04:10:23
【问题描述】:

我有以下数组格式的时区:

'America/New_York' => '(GMT-05:00) Eastern Time (US & Canada)',
'Europe/Lisbon' => '(GMT) Greenwich Mean Time : Lisbon',

等等。

如何向用户显示用户友好的夏季/夏令时相关时区标识符?

例如,显示纽约现在的时间会在时间后面附加“(EDT)”,这对本地用户来说很有意义。我想避免显示 ((GMT-05:00) 东部时间(美国和加拿大))或仅显示 (GMT-05:00),这并非全年都严格准确。

那么理想情况下,是否有一个 Web 服务/数据库可以采用“America/New_York”格式的 tz 字符串和时间戳作为参数并返回格式为 here 的缩写?

【问题讨论】:

  • 好问题。在处理 javascript 时区检测脚本 (jsTimezoneDetect @ bitbucket) 时,我正在考虑将其包括在内,但放弃了努力。对我来说,有太多的惯例和模棱两可。

标签: timezone


【解决方案1】:

strftime%Z 格式说明符为您提供此缩写。您没有说您使用的是什么编程语言,但大多数编程语言都允许您以一种或另一种方式访问​​strftime

Python:

import pytz
from datetime import datetime

here = pytz.timezone('Asia/Tokyo')
print here.localize(datetime.utcnow()).strftime("%Z")

there = pytz.timezone('America/Montreal')
print there.localize(datetime.utcnow()).strftime("%Z")

PHP:

date_default_timezone_set("Asia/Tokyo");
echo strftime("%Z");

date_default_timezone_set("America/Montreal");
echo strftime("%Z");

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多