Delphi到.Net格式的字符串转换

时间:2010-07-06 13:36:00

标签: .net delphi string format

我正在寻找一个库或片段来将日期/时间格式字符串从Delphi转换为.Net。这适用于Delphi 2007版。

例如,Delphi 2007将“m”指定为月份,而.Net使用“M”。但是,在Delphi中,如果“m”跟随“h”,那么它代表一个微小的值。

有可用的,还是我必须自己动手?

2 个答案:

答案 0 :(得分:3)

ShineOn有一个功能就是:

ConvertDelphiDateTimeFormat(const aFormat: DelphiString): DelphiString;

它也有反向:

ConvertClrDateTimeFormat(const aFormat: DelphiString): DelphiString;

可在“Date Functions (SysUtils).pas”文件中找到。

代码确实表明它不是100%

日期格式之间的转换:

这很接近,但在某些情况下,映射必须是近似的。

对于Delphi格式,这意味着

  • am / pm映射到ampm(也就是说,必须使用 系统设置)
  • a / p基于当前设置,不是硬编码为'a'或'p'
  • 无法控制am / pm或a / p字符串
  • 中的大小写
  • 没有选择如何代表时代,他们都映射到gg
  • 不支持z - 它映射到带小数点后3秒的小数秒(zzz)

对于CLR格式,这意味着

  • 不支持单位数年份,他们映射到2位数年份。
  • 当没有am / pm符号时,不支持12小时制,使用24小时。
  • 不支持小数秒,它们映射到毫秒(zzz)
  • 不支持时区偏移

答案 1 :(得分:1)

你必须自己动手。

使用这些链接进行映射:

  1. .NET Custom Date and Time Format String
  2. .NET Standard DateTime Format Strings
  3. Delphi SysUtils.FormatDateTime说明符
  4. - 的Jeroen