Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить Timezone системы? в строковом виде! 
V
    Опции темы
lukas
  Дата 24.10.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Люди нужно получить Timezone примерно вот такого формата: Europe/Oslo или Asia/Singapore ну и т.д. Такой формат испоользуется в php и мне нужен именно такой формат, а не просто часовой пояс.

Может кто нить уже реализовывал такую функцию?


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Keeper89
Дата 24.10.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Имхо, это нереально, т.к. есть города и страны с одинаковым UTC.

Либо надо делать свою БД наподобие вот этой, определяя отклонение от Гринвича:
Код

function GetTimeZoneBias: Longint;
var
  TimeZone: TTimeZoneInformation;
begin
  GetTimeZoneInformation(TimeZone);
  Result := TimeZone.Bias div -60;
end; 


З.Ы. У меня PHP не установлен, но стоит посмотреть, как это реализовано там.

Это сообщение отредактировал(а) Keeper89 - 24.10.2009, 15:45


--------------------
PM MAIL WWW   Вверх
lukas
Дата 24.10.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(Keeper89 @  24.10.2009,  15:30 Найти цитируемый пост)
Имхо, это нереально, т.к. есть города и страны с одинаковым UTC.

Либо надо делать свою БД наподобие вот этой, определяя отклонение от Гринвича:


Но проблема еще в том, что есть страны и города с одинаковым UTC но без перехода на летнее/зимнее время. Как быть?

Вот так устанавливается часовой пояс в php

Код

 date_default_timezone_set('Etc/GMT+5');
// но тут не понятно с переходом на летнее зимнее время


или так

Код

 date_default_timezone_set('Europe/Oslo');



Мне надо получить такой формат с помощью delphi, т.к. php движок выполняется на компе через delphi и нужно задать этот часовой пояс для корректной работы.

Может кто нибудь знает, что это за формат часовых поясов? У него есть какой нибудь стандарт.



--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Keeper89
Дата 24.10.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Такой формат подходит или нет:
Код

date_default_timezone_set('Etc/GMT+5');

?
И что такое Etc?


--------------------
PM MAIL WWW   Вверх
lukas
Дата 24.10.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15





--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
CodeMonkey
Дата 24.10.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



А зачем вам такой формат?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Keeper89
Дата 24.10.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



lukas, 
ну, если он этот формат воспринимает, можно попробовать так:
Код

function GetTimeZoneString: string;
var
  TimeZone: TTimeZoneInformation;
  curBias: LongInt;
begin
  GetTimeZoneInformation(TimeZone);
  curBias:= TimeZone.Bias div -60;
  if curBias > 0 then
    Result := 'Etc/GMT+' + IntToStr(curBias)
  else
    Result := 'Etc/GMT' + IntToStr(curBias)    
end; 


Запостите PHP-функцию, посмотрим как там это реализуется.

Это сообщение отредактировал(а) Keeper89 - 24.10.2009, 17:27


--------------------
PM MAIL WWW   Вверх
lukas
Дата 24.10.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Все всем спасибо, выкрутился другим способом, аказывается PHP определял часовой пояс, но выводил предупреждение о том что пояс может определятся не корректно и его нужно задать самому. Я отключил вывод этих notice'в и все заработало как надо.

Работал я с PHP4Delphi, у кого будут похожие проблемы с датами в этом пакете могу помочь.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.