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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение текущего времени, независимо от настроек формата в системе 
V
    Опции темы
KAMIKAZE
  Дата 11.3.2010, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток, 

Честно говоря давно не программировал на делфи, поэтому наверно и возник данный вопрос, а именно:
как получить текущее время независимо от региональных настроек в 24-часовом формате?
Например, если у вас винда на английском, то вместо 21:00:00 будет скажем 9:00 PM, а на выходе мы должны получить 21:00:00 и еще учитывая GMT.
 smile 
PM MAIL   Вверх
Akella
Дата 11.3.2010, 02:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(KAMIKAZE @  11.3.2010,  02:06 Найти цитируемый пост)
как получить текущее время независимо от региональных настроек в 24-часовом формате?

есть функция now
Как тебе надо, так и приводи дату/время к любому формату.
DateToStr()
FormatDateTime()
И т.д.
Цитата(KAMIKAZE @  11.3.2010,  02:06 Найти цитируемый пост)
Например, если у вас винда на английском, то вместо 21:00:00 будет скажем 9:00 PM,

ГДЕ будет? Уточняй.

Добавлено через 29 секунд
Цитата(KAMIKAZE @  11.3.2010,  02:06 Найти цитируемый пост)
на выходе мы должны получить 21:00:00

Почитай про FormatDateTime()

Добавлено через 2 минуты и 59 секунд
здесь функции по датам и времени

Добавлено через 4 минуты и 14 секунд
Показываем дату в виде "21.01.2010"
Код

ShowMessage(FormatDateTime('dd.mm.yyyy', Date));


Добавлено через 5 минут и 5 секунд
Время 21:00:00
Код

ShowMessage(FormatDateTime('hh:nn:ss', Time));

PM MAIL   Вверх
KAMIKAZE
Дата 11.3.2010, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да я пытался вот так: 

Код

SysTime:SYSTEMTIME;
GetLocalTime(SysTime);


видимо полез в дебри) 
А тут все просто оказывается smile, только наверно 
Код

ShowMessage(FormatDateTime('hh:mm:ss', Time));  // вместо "nn" - "mm" хотя работает одинаково)  


Спасибо smile 
PM MAIL   Вверх
Akella
Дата 12.3.2010, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Нет. mm - это месяцы, а nn - это минуты. А zzz это миллисекунды.
PM MAIL   Вверх
KAMIKAZE
Дата 12.3.2010, 12:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Странно...

user posted image
PM MAIL   Вверх
Mikel
Дата 12.3.2010, 14:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



MM месяцы, mm- минуты


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
KAMIKAZE
Дата 12.3.2010, 22:59 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Именно так  smile 
PM MAIL   Вверх
Akella
Дата 13.3.2010, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Mikel @  12.3.2010,  14:02 Найти цитируемый пост)
MM месяцы, mm- минуты

да вы хоть бы справку почитали, а? Или клавиша F1 выламана?

Добавлено через 25 секунд
Аааа, я понял. Господа не читатели. Господа писатели smile

Добавлено через 3 минуты и 4 секунды
Ну ладно, раз вам лень, то выложу сюда.
Цитата

mm   Displays the month as a number with a leading zero (01-12). If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.   
nn   Displays the minute with a leading zero (00-59).   

Так понятнее?


Цитата(Mikel @  12.3.2010,  14:02 Найти цитируемый пост)
MM месяцы, mm- минуты 

Видите ли, Delphi регистронезависимый язык программирования. И там пофиг, хоть MM, хоть mm. Это так тоже для правки smile

Добавлено через 4 минуты и 33 секунды
Цитата(KAMIKAZE @ 12.3.2010,  12:27)
Странно...

user posted image

И ещё, я вот не пойму, чего ты полез в региональные настройки вЕнды?
PM MAIL   Вверх
KAMIKAZE
Дата 13.3.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Полез в настройки потому что там написано что значит 'm', 'n', и т.д.  smile  
В общем спс разобрался.

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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Т.е. официальная справка это фуфло, да?
PM MAIL   Вверх
KAMIKAZE
Дата 13.3.2010, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да нет, просто я на яве ща пишу и очень часто нужно конвертировать дату и там 'MM' и 'mm' разные вещи, причем независимо какая была перед ними последовательность, я об этом предложении- "If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed." Профтыкал я его. smile 
PM MAIL   Вверх
Mikel
Дата 13.3.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Господа читатели, перейдите от теории к практике ) Что будет? )

Код

DateTimeToString(s,'hh:mm:ss',now);
edit1.text:=s;

 smile 

Но в хелпе написано правильно  smile 



--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Akella
Дата 13.3.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



А что будет в Edit1?

Код

procedure TForm7.Button1Click(Sender: TObject);
Var
 s: string;
begin

  DateTimeToString(s,'dd:nn:yyy hh:mm:ss', now);
  edit1.text := s;
end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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