代码之家  ›  专栏  ›  技术社区  ›  Kevin

如何在node中使用js-joda时区操作?

  •  1
  • Kevin  · 技术社区  · 2 年前

    我正在尝试使用 @js-joda/core 在此代码片段中 node 环境:

    LocalDateTime.parse(row.date + "T" + row.time)
        .atZone(ZoneId.of("America/Los_Angeles"))
        .toInstant()
        .toEpochMilli()
    

    我得到这个错误:

    ERROR: unsupported ZoneId:America/Los_Angeles 
    
     {
      "stack": "Error\n    at getRules (/Users/kevin/project/node_modules/@js-joda/core/dist/js-joda.js:4395:15)\n    at ofId (/Users/kevin/project/node_modules/@js-joda/core/dist/js-joda.js:4406:39)\n    at of (/Users/kevin/project/node_modules/@js-joda/core/dist/js-joda.js:10262:27)\n    at <anonymous> (/Users/kevin/project/app/app/scripts/create-tags.ts:119:30)\n    at <anonymous> (/Users/kevin/project/app/app/scripts/create-tags.ts:79:25)\n    at map (native)\n    at <anonymous> (/Users/kevin/project/app/app/scripts/create-tags.ts:79:14)\n    at processTicksAndRejections (native)",
      "message": "unsupported ZoneId:America/Los_Angeles"
    } 
    

    我可以在浏览器控制台中很好地运行这段代码 https://js-joda.github.io/js-joda/ : working

    我需要设置什么才能在节点环境中工作?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Yuvaraj M    2 年前

    Js-joda 包已被弃用,您可以使用 @js-joda/core 相反

    npm i @js-joda/core @js-joda/timezone
    

    和

    您需要导入 @js-joda/timezone 在文件顶部,这将启用时区

    import '@js-joda/timezone';
    

    那么试试这个

    LocalDateTime.parse(row.date + "T" + row.time)
        .atZone(ZoneId.of("America/Los_Angeles"))
        .toInstant()
        .toEpochMilli()
    
    推荐文章