如何将日期字符串转换为时区特定日期。?

How to convert a date string to timezone specific date.?

嗨,我有一个 angular 5 项目。我在根据用户时区显示日期时遇到问题。

这是我的示例代码片段。

  formatDateForTableDisplay(dateValueAsString: string) {

    console.log(dateValueAsString); // this will print for example 2020-05-31

    const dateObject = new Date(dateValueAsString);

    if (this.formGroup.get('frequency').value === 'PER_DAY') {
      return this.datePipe.transform(dateObject, 'mediumDate');
    } else if (this.formGroup.get('frequency').value === 'PER_MONTH') {
      return this.datePipe.transform(dateObject, 'LLL, yyyy');
    } else {
      return this.datePipe.transform(dateObject, 'yyyy');
    }
  }

想象一下,如果我们将日期字符串作为 2020-05-31 传递给函数 formatDateForTableDisplay。在另一个用户中,时区可能是 6 月 1 日,因为用户时区比 GMT 早 +8 小时,这需要打印为 2020-06-01。我怎样才能实现它

谢谢

您有 dateValueAsString 作为 2020-05-31 进入,这意味着您没有小时、分钟或秒(在这种情况下,小时是最重要的)。所以你无法判断 dateValueAsString 是在凌晨 2 点保存的(意味着它将保持为 2020-05-31)还是在晚上 11 点保存(意味着它应该转换为 2020-06-01)