![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
E-Mail Indi 10 (BDS 4) TIdMessage DateTime format [WinXP]
iXT © (2006-11-08 17:32:00)Время доброе всем.
Есть вопросик. При создании сообщения (TIdMessage) значение Date: ............ hh:mm:ss +0000
Логично, что из-за этого при приеме время улетает на 3 (ну у кого как) часа
Почему он ставит "нулевой часовой пояс". Где какую галку поставить
P.S.
В окнах все стоит как надо: +3
Anatoly Podgoretsky (2006-11-09 16:36:00) [21]> iXT (09.11.2006 16:22:07) [7]
Что то я не видел этой строки Date: Thu, 9 Nov 2006 11:52:03 +0000 раньше!
Это нормальное, локальное, зимнее время со смещением 0, такое время наблюдается на нулевом меридиане, например в Гринвиче. По формату соответствует RFC
Если уберешь +0000 то это будет абсолютное время
iXT (2006-11-09 16:22:00) [22]2 Anatoly Podgoretsky
Ну какой тут треп???
Помоему все, очень даже, конкретно сказано
IdMessage.Clear;
IdMessage.From.Name:='Sender';
IdMessage.From.Address:='sender@local.net';
IdMessage.Recipients.EMailAddresses:='reciver@local.net';
IdMessage.Subject:='Test message with attachment';
IdMessage.SaveToFile('c:\test.msg');
Получаем
From: "Sender" <sender@local.net>
Subject: Test message with attachment
To: reciver@local.net
Date: Thu, 9 Nov 2006 11:52:03 + 0000
.
при изменение UseNowFor Date получаем такой же результат
> Дату для данного случая надо понимать как дату + время,
> плюс смещение и плюс то что ты не сумел привести
Что значит не сумел привести??? Если "Now - x/24", то мы получим:
Date: Thu, 9 Nov 2006 08:52:03 +0000
а надо:
Date: Thu, 9 Nov 2006 11:52:03 +0300
Есть
TIdDateTimeStamp
"Класс для выполнения математических действий с датой и временем, связанных с тем, что Интернет-протоколы используют различные форматы даты и времени; кроме того, клиенты и серверы могут находиться в различных часовых поясах."
Но как его юзать пока не допетрил!
Anatoly Podgoretsky (2006-11-09 13:26:00) [23]Дату для данного случая надо понимать как дату + время, плюс смещение и плюс то что ты не сумел привести. Дата должна быть в соответствии с RFC
> Сво-во UseNowForDate и true и false,
Это слова, а у нас принято фактами оперировать, иначе будем трепаться, раз автор трепется.
ЗЫ: Инди она поставляется в исходных текстах!!!
iXT (2006-11-09 11:53:00) [24]
> что в этом св-ве - время в локальной зоне
Это свойство я не заполняю - это раз. Сво-во UseNowForDate и true и false, хотя дату ставит текущую всеравно (может потому что Date пустое)
> На основание, что ты ему не оставил другой возможности.
Какой я плохой, а если можно, то в каком "месте" у него появится эта другая возможность?
Anatoly Podgoretsky (2006-11-09 11:28:00) [25]> iXT (09.11.2006 11:04:02) [2]
На основание, что ты ему не оставил другой возможности.
umbra (2006-11-09 11:27:00) [26]ну, в справке написано, что в этом св-ве - время в локальной зоне. Может поэтому и пишут +0000
а может авторы так шутят. Вот, например, я долго думал, почему у меня не работаетTIdConnectTroughHTTPProxy. Затем полез в исходники, а в модуле комментарий типа "допишите этот класс и поместите в другой модуль". Шутники.
iXT (2006-11-09 11:04:00) [27]Согласен, этот вариант всегда есть, НО
на каком основании он вставляет +0000? Ставил уж тогда бы из Widows. Ведь это время создания сообщения, TDateTime - текущее тремя вставил, а затем так просто: "+0000".
umbra (2006-11-09 10:53:00) [28]потому, что св-во
TIdMessage.Dateимеет типTDateTime, который ничего про часовые пояса не знает. Надо вручную править заголовок, прописывая нужное смещение