Преобразование строки формата Delphi в .Net - PullRequest
1 голос
/ 06 июля 2010

Я ищу библиотеку или фрагмент для преобразования строк формата даты / времени из Delphi в .Net. Это для Delphi версии 2007.

Например, Delphi 2007 указывает «m» как месяц, тогда как .Net использует «M». Однако в Delphi, если «m» следует за «h», то это представляет собой минутное значение.

Есть ли в наличии, или я должен свернуть свой собственный?

Ответы [ 2 ]

3 голосов
/ 06 июля 2010

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)
  • нет поддержки смещения часового пояса
1 голос
/ 06 июля 2010

Вы должны свернуть свое собственное.

Используйте эти ссылки, чтобы сделать сопоставление:

  1. .NET Строка формата даты и времени пользователя
  2. .NET Стандартные строки формата DateTime
  3. Delphi SysUtils.FormatDateTime спецификаторы

- jeroen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...