IMAP服务器正在向我发送如下所示的时间戳:
2016年4月12日星期二09:45:14 GMT-0500(CDT)
我已经在足够多的地方看到这种格式足以让我认为它是标准化的。但我不知道标准的名称是什么。
它非常类似于电子邮件的RFC 5322日期时间格式(我的第一个猜测,因为我正在使用IMAP服务器),但并不完全。
有人认出来吗?
编辑:根据MDN,显然这也是JavaScript Date.prototype.toString()的标准格式。我在不相关的环境(JS / IMAP)中多处看到这一事实让我觉得它必须是某种标准。仍然无法找到它的名字。
答案 0 :(得分:2)
与大多数SO答案不同,这是对失败的承认。最初我以为这是C库函数asctime() - C在UNIX上投射了很长的阴影,因此也就是互联网。但正如OP指出的那样,这将产生Tue Apr 12 09:45:14 2016
而不是Tue Apr 12 2016 09:45:14 GMT-0500 (CDT)
形式的东西。我应该停止看这一点,但好奇心推动了我。
经过大量拖网,我认为格式不是标准,而是asctime和RFC 822及其后代的混蛋。
asctime
(和堂兄弟,例如ctime
,strftime
)会获得Tue Apr 12 09:45:14 2016
,所以这一年是错误的'地方,没有偏移或区域。我怀疑后一点是环境的,受LC_TIME
的影响。 GNU日期的源代码似乎同意。See GNU date in the coreutils pkg source Tues, 06 Apr 16 09:45:14 CDT
。
RFC 2822的努力将是Tues, 06 Apr 2016 09:45:14 -0500
,修复Y2K问题,并在偏离普遍时间时更加清晰。 RFC 5322是一样的。并且(aargh)在一周之后引入一个逗号。 See RFC 822, etc. Tue, 06 Apr 2016 09:45:14 GMT
使用RFC1123 formatter 在这一点上,我意识到浪费这么多时间学习时间的讽刺意味,而且在我开始计算机编程的那段时间之前知道的双重讽刺是{{3}之一}和notoriously mis-understood区域,我应该知道最好不要被吸进去。让这一切成为你们所有人的教训。逃离,我的朋友,逃跑!