En el ejemplo que comentas, realmente estás suponiendo que "13:20:15" está en UTC, y que tu zona horaria es -3, luego en tu zona horaria quedaría "10:20:15".
Código Javascript
:
Ver originalvar tiempo = "13:20:15";
var offset = "-3";
var date = new Date();
var parts = tiempo.split(":");
date.setHours(parts[0], parts[1], parts[2]);
var d = new Date(date.getTime() + offset*3600*1000);
var nuevoTiempo = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
console.log(nuevoTiempo); // 10:20:15
Pero si lo que quieres realmente es pasar a UTC tendrías que poner un signo menos:
Código Javascript
:
Ver originalvar tiempo = "13:20:15";
var offset = "-3";
var date = new Date();
var parts = tiempo.split(":");
date.setHours(parts[0], parts[1], parts[2]);
var d = new Date(date.getTime() - offset*3600*1000); // cambiamos a signo menos
var nuevoTiempo = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
console.log(nuevoTiempo); // 16:20:15
Y en UTC sería 16:20:15.