首页 > 解决方案 > 使用 nodejs 更改系统/操作系统时间

问题描述

有没有可以改变系统时间的方法/库?就我而言,我需要更新 linux 机器(Debian)的时间。我知道有一种方法可以使用 shell 命令设置时间,我要问的是是否有抽象库或其他方式?

标签: javascriptnode.jslinuxsystemtime

解决方案


如果您使用机器的date命令,这非常简单。但是,要做到这一点,您需要从 NodeJS 脚本中调用系统命令。这可以通过 NodeJS 的exec命令来实现。你可以在这里阅读更多关于它的信息。它基本上是一种从 NodeJS 代码内部调用系统函数的方法。它运行异步,因此它需要一个具有 NodeJS errorstdoutstderror.

const { exec } = require('child_process');

const timestamp = '20190927 10:00:00';

exec(`/bin/date --set="${timestamp}"`, (err, stdout, stderr) => {
  if (err || stderr) {
    console.error(err);
    console.log(stderr);
  } else {
    console.log(stdout);
    console.log(`Successfully set the system's datetime to ${stdout}`);
  }
}));

很可能你没有$PATH可用的。因此,您需要指定日期的确切路径。您可以通过which date在终端中运行并将输出复制到exac语句中来找到它。对于我的 Ubuntu 18.04 机器,它位于/bin/date.


推荐阅读