【问题标题】:convert Zulu time to +8GMT将祖鲁时间转换为 +8GMT
【发布时间】:2021-03-23 12:27:54
【问题描述】:

所以我使用 Mongodb 将日期时间存储在一个数组中。

2021-01-16T05:00:00.000Z 我想在我的 reactJS 应用程序中将其转换为 +8GMT 时间。

我想知道是否有任何简单的方法可以做到这一点?

我试过了

function Dateformat(props){
    var options = { year: 'numeric', month: 'long', day: 'numeric' };
    return new Date(props.timestamp).toLocaleDateString([],options);
}

但我只是得到它打印数据库中相同的时间和日期

【问题讨论】:

  • 仅供参考:末尾的 Z 表示它是祖鲁时间,也就是 UTC 时间,而不是 PST 时间。
  • 您想要始终 UTC+8 小时(即无论夏天还是冬天)?还是需要考虑夏令时?

标签: node.js reactjs mongodb


【解决方案1】:

已编辑答案

您可以在日期对象下使用toLocaleString API


const TimeDisplayComponent = (props) => {

  const convertedTime = new Date(props.theTimeYouwantToConvert).toLocaleString( 'sv', { timeZoneName: 'short' } );

  return <div>{convertedTime}</div>;
}

编辑答案结束


您提供的日期是ISO-8601 格式。要将其更改为 GMT+8,您可以这样做

const now = new Date();
const output = new Date(
  now.getTime() + (now.getTimezoneOffset() * 60_000)
);

或者,您始终可以使用日期时间库,例如 LuxonJSDateFNS。使用库处理时间转换通常更容易,因为代码中与日期时间操作相关的问题太多(闰年、夏令时等)。

【讨论】:

  • 对不起,我有点理解,但是我应该把 ``` props.timestamp ```` 部分放在哪里,因为我知道现在是时候了 - 输出,但你不需要设置现在到 props.timestamp 才能正常工作?
  • 您的输入是时间戳吗?因为与 ISO-8601 相比,这让事情变得容易得多
  • Mongodb 将其存储为 2021-01-16T05:00:00.000Z 这就是我需要转换的内容。
  • 我刚刚找到了一个更简单的解决方案,您可以使用 [toLocaleString API](new Date(2021-01-16T05:00:00.000Z).toLocaleString( 'sv', { timeZoneName: 'short' } );),我'已经更新了解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多