【问题标题】:Convert GMT epoch to CST将 GMT 纪元转换为 CST
【发布时间】:2011-08-17 05:22:22
【问题描述】:

我正在尝试将作为纪元存储的 GMT 时间转换为 CST。

下面是我在java中运行的当前代码。

        if (originalRFC.get("sysmodtime")!=null){    
        var sysmod = originalRFC.get("sysmodtime");                                 // Hold the sysmodtime value in a variable

        logger.debug('Sysmodtime Before: ' + sysmod);                               // Output to log before before converstion to CST - (in GMT)

        var format = new java.text.SimpleDateFormat("MMMM d, yyyy HH:mm:ss a z");   // Format the string will be in        
        var dateString = sysmod.toLocaleString();                                   // Convert the epoch to the string equivalent in CST 
        var parsedDate = format.parse(dateString);                                  // Convert that CST String back to epoch 
        var sysmodConvert = parsedDate.getTime();                                   // Convert it to time and milliseconds

        logger.debug('Sysmodtime After: ' + sysmodConvert);                                 //Output to log after conversion to CST

        genericRFC.setField("last-update-time",sysmodConvert);
}

查看日志中返回的以下错误,我们可以看到“1301382996000”之前的时间,当我尝试转换时它会中断:

2011-05-02 14:25:49,926 [http-8080-1] sm702-adapter_convert 脚本 - Sysmodtime 之前:1301382996000 2011-05-02 14:25:49,941 [http-8080-1] sm702-adapter_convert 脚本 - 调用函数转换时出错 org.apache.bsf.BSFException:JavaScript 错误:java.text.ParseException:无法解析的日期:“[object JavaObject]”

【问题讨论】:

  • 你的环境是什么?我在这里看到了 Java 和 JavaScript 的奇怪混合。另外,你想如何使用你转换后的Date,你打算将它格式化并显示给用户吗?

标签: javascript timezone epoch gmt


【解决方案1】:

假设“纪元”是指 UNIX 时间戳(自 UNIX 纪元以来的秒数),此时间格式与时区无关。也就是说,您的时间戳不是 UTC、GMT、CST 或任何其他时区。这只是几秒钟。

当您将时间戳重新格式化为人类可读的格式时,您会应用时区。在这种情况下,只需将其加载到 Date 对象中,就应该使用您的本地时区。

【讨论】:

    【解决方案2】:

    对于初学者来说,toLocaleString() 取决于区域设置,并且可能与您使用的格式不同(它实际上超出了您的控制范围)。

    其次,如果您知道 CST 时区偏移量,则始终可以使用 getTime() 添加偏移量并使用 setTime() 进行转换。
    在 Java 世界中,有类似 java.util.TimeZone 的东西可以在毫秒内为您提供正确的偏移量(使用 getOffset())。

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2021-08-25
      • 2019-05-21
      • 2021-03-25
      • 2012-08-27
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多