Node.js - 设置系统日期/时间

Don*_*ddy 5 javascript time datetime node.js

有没有办法从 node.js 服务器在操作系统上设置日期/时间?

有很多关于如何更改时区的示例,但我需要更改 PC 的实际日期/时间

Oli*_*li4 2

我的答案基于 @Mimouni 在另一个问题上的回答/sf/answers/1620944811/,由于弃用,我只是将 sys 的包含更改为 util。

此外,由于我们的实现和要求(如果时间错误,我们会启动其他 Windows 服务),我导入了“node-windows”。但是,如果您只想使用内置的 npm 功能,欢迎您看看是否可以在没有此功能的情况下提升用户。

基本上你有3个重要的步骤:

  1. 将str/int转换为你想要的日期
  2. 正确设置日期格式
  3. 运行提升的命令

这里如下:

const sys = require('util')
const win = require('node-windows')

dateTime    = new Date(time) //Convert string or number to date
let day     = dateTime.getDate() 
let month   = dateTime.getUTCMonth() + 1 
let year    = dateTime.getFullYear() 
let updateD = `${year}-${month}-${day}` //Format the string correctly

//Add a callback function (this can be somewhere else)
function execCallback(error, stdout, stderr) { 
     if (error) {
         console.log(error)
     } else {
         console.log(stdout) 
     }
}
var exec = win.elevate(`cmd /c date ${updateD}`,undefined, execCallback);
Run Code Online (Sandbox Code Playgroud)

如果您想设置时间,请将exec 中的date替换为time