Вы не определили, что вы подразумеваете под "действительным часовым поясом" - вы имеете в виду местный часовой пояс? (UTC, в конце концов, является совершенно действительным часовым поясом - или, по крайней мере, так оно и есть, если вы находитесь в часовом поясе Западной Европы, а не в британском летнем времени…)
Если у вас есть дата UTC и вы хотите превратить ее в дату в местном часовом поясе, это просто:
function UTCtoLocal(inDate) {
// inDate can be null, a string or an object
// if it's an object, it can be a date or event
var localDate = new Date();
var utcDate = new Date().toUTCString();
if (inDate) {
if (typeof inDate == "string") {
utcDate = inDate;
}
else {
if (inDate.getDay) { // is it really a date?
utcDate = inDate.toString();
}
}
}
utcDate = utcDate.substr(0, utcDate.length-3);
localDate.setTime(Date.parse(utcDate));
return localDate;
}