Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.07.2009, 11:40
uisovec uisovec вне форума
Прохожий
 
Регистрация: 15.06.2009
Сообщения: 19
Репутация: 10
По умолчанию Проблема с DateToStr

Объявил свою переменную типа TFormatSettings
Код:
var
FormDateTime : TFormatSettings;
begin
  with FormDateTime do
  begin
   ShortDateFormat := 'dd/mm/yyyy';
   DateSeparator := #32;
   LongTimeFormat := 'hh:nn';
   TimeSeparator := ':';
  end;
Затем пытаюсь преобразовать дату
Код:
ShowMessage(DateToStr(StrToDate('13 07 1990',FormDateTime)));
В итоге вылезает исключение. "13 07 1990" не является датой. Где я накосячил?
Ответить с цитированием
  #2  
Старый 30.07.2009, 13:32
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

StrToDate ест все, кроме пробелов. Если дату нужно вписывать именно через пробелы, то своя процедура нужна. Это во-первых. А во-вторых:
'dd/mm/yyyy' и '13 07 1990' - разве это одинаковые форматы?
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #3  
Старый 30.07.2009, 14:31
uisovec uisovec вне форума
Прохожий
 
Регистрация: 15.06.2009
Сообщения: 19
Репутация: 10
По умолчанию

Цитата:
Сообщение от KOOL
'dd/mm/yyyy' и '13 07 1990' - разве это одинаковые форматы?
Судя по тому, что если объявить DateSeparator := '.' и оставить 'dd/mm/yyyy' а потом попробывать преобразовать '13.07.1990' ( что вполне успешно проходит), то ДА.
А насчет первого - то есть мне по идее надо будет во входной строке заменить все пробелы допустим на '.' и тогда нет проблем?
Ответить с цитированием
  #4  
Старый 30.07.2009, 14:36
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

По идее да. главное разделитель нужный указать. Но если даты в разном формате будут вводиться, то надо использовать обработку регулярных выражений(в дельфи вроде родной поддержки нету)
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #5  
Старый 30.07.2009, 14:59
uisovec uisovec вне форума
Прохожий
 
Регистрация: 15.06.2009
Сообщения: 19
Репутация: 10
По умолчанию

У меня просто из запроса должна возвращаться дата в виде 17 июл 1990 например, а в MaskEdit мне ее надо запихнуть в формате 17.07.1990
Ответить с цитированием
  #6  
Старый 30.07.2009, 15:35
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Я на PHP делал когда то, совет дам: просто менять ' июл ' на '.07.'. Шустро, и без проблем.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter