2016-01-11 5 views
1

Мне нужно сделать обратный отсчет до определенного времени в Нью-Йорке во Flash AS3, независимо от местного времени машины пользователя. Я могу сделать часы сами, как только у меня есть объект Date правильно, но я не могу понять, как создать объект Date со временем в Нью-Йорке. Я должен буду иметь в виду и летнее время.Flash AS3 получить время в другом часовом поясе

всякая помощь приветствуется. Благодарю.

+0

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Date.html – Brian

+0

Сначала я думал, что дата-документы будут тривиально отвечать на этот вопрос, но он оказывается довольно сложным задача. Нет конструктора Date для произвольной локали, подразумевая, что вам нужно будет получить дату для текущей локали, получить от нее дату UTC, а затем вручную вычислить разницу в Нью-Йорке ... вроде неловкого танца, чтобы добраться до что вы пытаетесь сделать! – Brian

+0

@Brian точно. :) не просто. это тоже была моя мысль. но все еще не удается выполнить его. – split19

ответ

3

после еще одного поиска в google, я наконец нашел решение here.

var now:Date = new Date(); 
trace("now local time: " + now); 

var newYorkOffset:int = 1000 * 60 * 60 * 5; // 5 hours offset for NYC 
var localTimezoneOffset:Number = now.getTimezoneOffset() * 60 * 1000; 

// add now + localTimeZoneOffset to get UTC, then subtract NY offset to get NY time  
now.setTime(now.getTime() + localTimezoneOffset - newYorkOffset);   
trace("now in New York: " + now); 

и я уверен, что это происходит экономия дневного света во внимание, поскольку getTimezoneOffset() включает сбережения дневного света автоматически на основе даты.

Чтобы проверить, временно измените часовой пояс вашего компьютера на что-то другое, кроме Нью-Йорка. «теперь в Нью-Йорке:« Время не изменится.

Смежные вопросы