我试图始终获得特定时区的特定时间
例如:Sao Paulo(-3)
我已经尝试了这个代码,我发现在这里搜索stackoverflow:
// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(city, offset) {
// create Date object for current location
d = new Date();
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}
// get Sao Paulo time
Ti.API.info(calcTime('Sao Paulo', '-3'));
在我的Ti.API.info()
上,我得到了以下响应:The local time in Sao Paulo is August 6, 2013, 3:31:52 PM GMT-03:00
。。。有办法只得到3:31:52
吗?此外正如这个函数所说。。。它总是显示当地时间,并显示该时区的时间。。。但有人知道,我怎么才能在不给local time
的情况下一直得到圣保罗的时间?因此,如果用户在手机上更改时间,就不会更改圣保罗的时间。
感谢
使用momentjs特别是时刻时区
http://momentjs.com/timezone/docs/
如果您使用Alloy,默认情况下会包含momentjs,否则您需要下载库。
如果您只是在谈论JavaScript,那么请看到这个答案。然而,我的猜测是,Titanium有自己的方式将原生iOS或Android时区API映射到JavaScript中。如果没有,它应该。我对钛的了解还不够,无法进一步回答这一点。
请记住,时区不能仅用偏移量表示。请参阅时区标记wiki中的"时区!=偏移量"。
特别地,圣保罗由IANA时区数据库中的America/Sao_Paulo
时区表示。该区域在-3和-2之间交替,如图所示。您不能简单地传入-3并期望它知道该做什么。