Skip to content

Instantly share code, notes, and snippets.

@tracker1
Created August 20, 2012 18:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tracker1/3406378 to your computer and use it in GitHub Desktop.
Save tracker1/3406378 to your computer and use it in GitHub Desktop.
Setting the current date/time in windows.
{
"name":"update-dtm"
,"version":"0.1.0"
,"dependencies":{
"request":"2.x.x"
}
,"devDependencies":{}
}
/*
GIST: https://gist.github.com/3406378
This is a quick/simple solution for updating the current date/time in windows (for when say your motherboard clock battery dies.
This uses a Yahoo API call, I'm excluding my API key, but it's easy/free to get one.
*/
var util = require("util")
,cp = require("child_process")
,request = require("request")
,dtm_url = "http://developer.yahooapis.com/TimeService/V1/getTime?output=json&appid=YOUR_KEY_HERE"
,tries = 0
;
console.log("Will attempt to update the date/time in 3 seconds.");
setTimeout(getDateTime,3000);
function getDateTime() {
tries++;
console.log("Attempting to get the date/time from the internet...\n");
request(dtm_url, function(err,response,body){
if (err) {
if (tries = 10) {
console.log("failed (Tried 10 times, will not try again).");
return;
}
console.log("failed. (trying again in 5 seconds)\n\n");
setTimeout(getDateTime,5000);
}
var resp = JSON.parse(body);
var dtm = new Date(resp.Result.Timestamp * 1000);
updateSystemDate(dtm);
});
}
function updateSystemDate(dtm) {
var d = [dtm.getMonth()+1,dtm.getDate(),dtm.getFullYear().toString(10).substring(2)].join('-');
console.log("Updating system date to " + d);
var dateprocess = cp.spawn("cmd",["/C","date",d],{cwd:process.cwd()});
dateprocess.stdout.on('data',function(data){process.stdout.write(data);});
dateprocess.stderr.on('data',function(data){process.stderr.write(data);});
dateprocess.on('exit',function(code,signal){
if (code !== 0) {
console.log(util.format("Failed to set date, ErrorLevel %d", code));
return;
}
updateSystemTime(dtm);
});
}
function updateSystemTime(dtm) {
var t = dtm.getHours() + ':' + dtm.getMinutes();
console.log("Updating system time to " + t);
var timeprocess = cp.spawn("cmd",["/C","time",t],{cwd:process.cwd()});
timeprocess.stdout.on('data',function(data){process.stdout.write(data);});
timeprocess.stderr.on('data',function(data){process.stderr.write(data);});
timeprocess.on('exit',function(code,signal){
if (code !== 0) {
console.log(util.format("Failed to set time, ErrorLevel %d", code));
return;
}
console.log("done.\n");
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment