Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.02.2012, 18:08
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 11  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Вы библиотеку-то попробовали?
Про стандарт почитали?
http://ru.wikipedia.org/wiki/ISO_8601
http://en.wikipedia.org/wiki/ISO_8601
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 17.02.2012, 21:22
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 12  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
это-то понятно, вот только для каждой таймзоны смещения прописывать что ли? не понятно..
Не нужно ничего для каждой тамйзоны - этим флешплеер вместе с операционной системой занимаются.
В общем случае схема такая:
Код:
Ваш формат->UTC(_не_ зависит от таймзоны и всяких переводов - для всего земного шарика одинаковое)->класс Data(сам определяет и пересчитывает для тайм-зоны пользователя)
UTC можно получить и как строку стандартного формата и как количество миллисекунд с 1970 года.

P.S. Я так и не понял из википедии, зависит ли CET от летнего и зимнего времени, но если не зависит, можно перевести СЕТ в UTC сдедующим методом:
Код AS3:
// Если сервер не хочет отдавать таймштамп, то парсим по отдельным частям, получаем cetFullYear, cetMonth и т.д.
var temp:Date = new Date();
// Врём, что наш CET - это UTC
temp.setUTCFullYear(cetYear);
temp.setUTCMonth(cetMonth);// 0 - январь! 1 - февраль (может надо 1 прибавить)
temp.setUTCDate(cetDate);// Число месяца
temp.setUTCHours(cetHours);
temp.setUTCMinues(cetMinues);
temp.setUTCSeconds(cetSeconds);
var timestamp:Number = temp.time + 2 * 60 * 60 * 1000;// +2h, Number не потому что дробное, а потому что в int такие большие числа не помещаются
// теперь этот timestamp отражает UTC время
var date:Date = new Date();
date.setTime(timestamp);
// Дальше работаем с date - будет отдавать в часовом поясе, который настроен на операционной системе
trace(date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate);
Вместо парсинга по-отдельности года, часов, и т.д. можно преобразовать исходную строку как будто она была UTC и скормить парсеру Date.


Последний раз редактировалось expl; 17.02.2012 в 21:27.
Старый 18.02.2012, 02:18
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 13  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Если это ваш сервер, то зачем вы дату передаете строкой? Вам недостаточно головной боли? Передавайте в секундах с начала Юникс эпохи, и по объему меньше, и стандарт, как ни как, и разночтений никаких не будет, то ли месяц то ли день и т.п.
ЗЫ, expl, ваши финты ушами с передвижением даты на час назад / вперед не имеют права на жизнь т.как они не учитывают DST (daylight saving time), если вам нужно передвинуть дату на час вперед, используйте соответсвующие методы (setHour / getHour).
ЗЗЫ: UTC время в секундах, а не в миллисекундах И влезает в uint.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 18.02.2012 в 02:25.
Старый 18.02.2012, 11:25
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 14  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
expl, ваши финты ушами с передвижением даты на час назад / вперед не имеют права на жизнь т.как они не учитывают DST (daylight saving time)
... получается CET тоже переводят на зимнее/летнее - значит не имеют.
А по поводу ну UTC - не знаю что там в секундах, но Date::setTime то в миллисекундах time принимает.

Старый 18.02.2012, 18:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 15  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Я наверное не совсем понял, что именно код делает, я хотел сказать, что этот код не всегда будет переводть на час вперед, а, в зависиомости от страны и дня может перевести от часа назад, до трех часов вперед (в Бразилии, например).
__________________
Hell is the possibility of sanity

Старый 18.02.2012, 18:35
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 16  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
я там просто к CET прибавил 2 часа и окрестил UTС-ом. Хотя, наверно, надо было отнять и узнать переводят ли вообще этот CET (средеевропейское время) на летнее время. Так то он один для всех вне зависимости от пояса. Но в любом случае не важно - не тестировал потому что.

Старый 18.02.2012, 21:09
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 17  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Центральноевропейское время (англ. Central European Time, CET) представляет собой одно из названий часового пояса UTC+1.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:14.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.