标识DateTime格式约定

时间:2014-08-05 15:26:49

标签: datetime string-formatting reverse-engineering identification

我正在开发一个程序(我们称之为PostProcessor),它将一些后处理应用到另一个闭源程序的输出中(我们将其称为Original部分后期处理涉及重新计算DateTime值并以与原始格式相同的格式输出。

例如,Original可能会输出:

03 : 15 : 30 [h:min:s]

PostProcessor计算出实际时间应为4小时20分10秒并输出:

04 : 20 : 10 [h:min:s]

“好”的是,尽管主要是黑盒子,Original程序有一些配置设置。在这些设置中深埋的是字符串值TimeOutputFormatPostProcessor可以读取。

在上面的示例中,TimeOutputFormat字符串是:

%#H : %M : %S [h:min:s]

我遇到的另一个有效格式字符串是:

%q2 min

将总分钟输出到2位小数。


从摆弄中,我还找到了%c格式字符串,其输出格式为:

1/1/1970 03:15:30 AM

确认Original程序将这些DateTime值存储在某种形式的Unix时间对象中。

我想知道的是使用什么格式化系统,所以我可以在我的PostProcessor中实现它。我希望它是一种有点标准的格式,因为我没有任何文档。黑盒Original程序使用Visual C ++,.NET和Python模块(以及可能还有其他我不知道的技术)。

这是我到目前为止所发现的目录。

    字母前面的
  • #(即%#d)用前导0填充值
  • #从值%d -> 01 but %#d -> 1
  • 中删除填充
  • 字母后面的数字(即“%d3”)显示十进制数字(如果值有这些数字)

已知格式化字符串(来自试用/错误)

%H - Hour component (not total hours, just the hour component)
%M - Minute component
%S - Second component
%a - Day of week (three letter abbrev.)
%b - Month (three letter abbrev.)
%c - Full date (m/d/yyyy HH:MM AM/PM)
%d - Not sure (outputs "01") (guessing day?)
%e-i Not defined
%j - Not sure (outputs "001") (guessing day out of 365?)
%k-l Not defined
%m - Not sure (outputs "01") (guessing month?)
%q - Total minutes
%p - AM/PM

如果有人能够识别这种格式化系统,我将非常感激。我将继续将其编入目录供我自己使用,但如果它恰好是一个公开的(并且希望记录良好的)系统,那么拥有一些原始文档会很不错。

0 个答案:

没有答案