ShineOn имеет функцию, которая делает это:
ConvertDelphiDateTimeFormat(const aFormat: DelphiString): DelphiString;
Он также имеет обратную сторону:
ConvertClrDateTimeFormat(const aFormat: DelphiString): DelphiString;
Он находится в "Функции даты (SysUtils) .pas"file.
Код указывает, что это не 100%
Преобразования между форматами даты:
Это близко, но естьВ некоторых случаях сопоставление должно быть приблизительным.
Для форматов Delphi это означает, что
- am / pm сопоставляется с ампер-амплитудой (то есть необходимо использовать настройки системы)
- a / p основано на текущих настройках, не жестко закодированных в 'a' или 'p'
- без контроля регистра в строках am / pm или a / p
- без параметровкак представить эпоху, все они отображаются в gg
- без поддержки z - он отображается в доли секунды с 3 десятичными (zzz)
Для форматов CLR это означает
- нет поддержки для однозначных лет, они отображаются на 2-значные годы.
- нет поддержки для 12-часовых часов, когда нет символа am / pm, используется 24-часовой.
- нет поддержки доли секунды, они отображаются в миллисекундах (zzz)
- нет поддержки смещения часового пояса