检测系统时间是不是与系统时区不对应 [Javascript]

Posted

技术标签:

【中文标题】检测系统时间是不是与系统时区不对应 [Javascript]【英文标题】:Detecting if the system time doesn't correspond to system timezone [Javascript]检测系统时间是否与系统时区不对应 [Javascript] 【发布时间】:2021-12-28 17:16:42 【问题描述】:

我有一个特定的系统配置,我的时区设置为 (UTC-03:00),但我将系统时间配置为一个小时后(例如:最初我使用时区的时间必须是 14:41,但我更新了到 15:41)。

我想知道是否有办法使用任何库来知道时间与时区不相关。

其他解决方案可能是使用 moment 或其他库使用系统时区而不是系统时间返回时间来解析时间。

我厌倦了使用 Datemomentmoment-timezone 没有运气。

例如:

系统时间:15:46(手动配置+1小时)

时区时间:14:46(如果没有更新,这应该是小时)

moment()  //result Wed Nov 17 2021 15:46:19 GMT-0300

我想要的是

moment().someFunc()  //result Wed Nov 17 2021 14:46:19 GMT-0300
// Could be a function, property, just a difference to use it in order 
//to compare with other date that comes from the server

【问题讨论】:

【参考方案1】:

如果您尝试获取 utc 日期时间(使用 moment().utc()),结果是您的时间减少了 utcOffset,并且文档中没有关于它的内容,所以我认为没有办法去做你想要的。

另一种方法是像下面的代码一样从外部服务器获取时间,但我希望其他人知道更好的方法

async function myTzTime() 
  const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
  const  data:  datetime  =   = await axios.get(`http://worldtimeapi.org/api/timezone/$timezone`);
  

  console.log('--->', datetime)


myTzTime();
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.24.0/axios.min.js"></script>

【讨论】:

以上是关于检测系统时间是不是与系统时区不对应 [Javascript]的主要内容,如果未能解决你的问题,请参考以下文章

PHP配置:依赖系统的时区设置是不安全的[重复]

android获取手机真实时间与时区,IP地址

怎么实时同步java虚拟机与操作系统时区 及JVM启动后再更改操作系统时区或时间也能保持其同步?

linux系统下java程序获取的时间与系统时间不一致

警告:require_once():在 PHP 中依赖系统的时区设置错误是不安全的

linux系统修改系统时间与时区