perl - DateTime -> set_time_zone(...) 使用世界时区字符串,用于丢失的城镇
问题描述
我为用户构建了一个时区列表,他们可以选择从他们居住的地方设置他们的数据库应用程序。我的问题不是全部列出,即“美国/芝加哥”在列表中,但没有“美国/休斯顿”,没有“美国/德克萨斯/休斯顿”与芝加哥相同的区域。但是“America/Texas/El_Paso”也不在列表中,不同的区域,所以用户可以选择。
我的问题是这可以从 CPAN 提供的库之外添加到 DateTime 缺少的城市和地区作为字符串吗?有没有人设法做到这一点以及如何做到这一点?
场景是您在当地时区创建记录,但也将一些记录发送到另一个国家。然后观察/处理他们转换为当地时区。即收到的记录是凌晨 2 点,在另一个国家是下午 5 点,前一天。您希望日期时间中的国家/地区日期戳,转换为存储或转换为对象。由于各种原因。
解决方案
America/Chicago
是IANA 时区数据库标识符。它在许多不同的操作系统、平台、语言和框架中得到认可。您不应该尝试添加自己的标识符,例如America/Texas/Houston
,因为它们只会在您的应用程序中有意义。如果您曾经将其发送到其他任何地方,那将毫无意义。您可以制作自己的城市列表并将它们映射到特定的时区,但不要尝试创建新的时区。
在时区数据库中,时区标识符的名称中使用了城市——但并非世界上的每个城市都有一个标识符。这是设计使然。您可以在时区数据库本身中包含的 tz 代码和数据的理论和语用学中阅读有关选择时区标识符的原因和方式的更多信息。
推荐阅读
- powerbi - 使用 IF 和 OR 进行 Powerbi 测量
- javascript - StyleSheet.compose 和 StyleSheet.flatten 有什么区别?
- reactjs - Giphy API - 从 api 获取数据但我无法在图像 src 标签中呈现它们?
- facebook - API Facebook 营销错误:不支持的获取请求。ID 为 XXXXXX 的对象不存在,由于缺少权限而无法加载
- amazon-web-services - AWS 是否在没有警告的情况下弃用了 IAM 条件?
- actions-on-google - 使用不同名称的 Google Action 重复
- reactjs - 电子和反应。构建是空白的
- php - 正则表达式帮助...仅在某些组合中去除空白
- pptxgenjs - pptxgenjs 折线图和条形图中的自定义数据标签
- reactjs - 为什么 concat() 不能在 react/hook 中工作?