Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
21st
Ноя
Datetostr в Windows 10 выводит день недели
Posted by obzor under Delphi
Есть программа и пользователи Windows 10 (не все, зависимости пока не нашел) сталкиваются с множественными ошибками в работе этой программы. Опытным путем выяснилось, что при инструкции записи в базу данных и даже просто отображения текущий даты с помощью «DateToStr(now)» результат получается не совсем ожидаемым. А именно, к примеру: «Пт 12.01.00». Соответственно, при попытке обратного преобразования «StrToDate» возникает ошибка: «Пт 12.01.00 is not a valid date».
Может, кто сталкивался с подобным и знает как можно с этим бороться? Не хотелось бы пилить костыль преобразования строки в нужную дату путем удаления лишних «Пт «, «Чт » и так далее.
Не надо записывать ни в какую базу дату в строковом формате! От слова совсем.
Вот именно ) А DateToStr при преобразовании использует ShortDateFormat. Туда настройки из винды попадают. Возможно программа их уже и изменила. Можно FormatDateTime использовать, там самому можно формат задать.
Во-первых, надо определить что тебе надо от датытайма. Реши какой формат тебе удобнее и используй только его. при необходимости меняй на выгрузку.
например удобнее тебе «2018-11-16 08:00:00» так и запиши в переменную во все места.
d_par:TFormatSettings;
d_par.DateSeparator:='-';
d_par.TimeSeparator:=':';
d_par.ShortDateFormat:='yyyy-mm-dd';
d_par.LongDateFormat:='yyyy-mm-dd';
d_par.ShortTimeFormat:='hh:MM:ss';
d_par.LongTimeFormat:='hh:MM:ss';
d_par.DecimalSeparator:='.';
//используй
S1:=DateToStr(now,d_par);
//и обратно
StrToDate(S1,d_par);
про остальное читай справку по дельфи. главное тут маленькие «m» это месяц, большие «M» это часы.
а есть ещё такая фигня как
FormatDateTime('dd.mm.yyyy hh:nn:ss', Now);
где «n» это часы.
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)