代码之家  ›  专栏  ›  技术社区  ›  Ali Zia

在瞬间时区将时间转换为特定的时区

  •  1
  • Ali Zia  · 技术社区  · 8 年前

    我有个约会 2018-06-19 09:06:29 . 它是如何存储在数据库中的。我正在使用 moment-timezone 调用这个函数。

    function getDateString(t, tz) {
        return moment()
        .tz("America/Chicago")
        .format('l');
    }
    

    在这里我知道 timezone 是“美国/芝加哥”,是“UTC-5小时”。我应该在辩论结束前5小时拿到时间。

    在我升级我的反应之前,这个功能一直工作得很好。有人知道可能是什么问题吗?

    这些是我当前的react设置

    "expo": "^27.0.0",
    "moment": "^2.22.2",
    "react": "16.3.1",
    "react-moment": "^0.7.0",
    "moment-timezone": "^0.5.17",
    "react-native": "https://github.com/expo/react-native/archive/sdk-27.0.0.tar.gz",
    "react-native-swipeable": "^0.6.0",
    "react-navigation": "1.5.11"
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   Pac0    8 年前

    根据我的评论,不确定到底出了什么问题(以及它过去在你这边是如何工作的),但这里是它应该如何对我工作的:

    1. 用日期时间创建一个时刻,指定这是用UTC表示的。 moment.utc()

    2. 将其转换为您的时区 moment.tz()

    这样可以得到如下结果:

    function getDateString(t, tz) {
        return moment.utc(t, 'YYYY-MM-DD HH:mm:ss')
        .tz("America/Chicago")
        .format('l');
    }
    
    推荐文章