为什么asctime函数返回的特定字符表示,即Www Mmm dd hh:mm:ss yyyy\n选择和它的起源是什么?信息的排序对我来说似乎很特殊,特别是把时间信息放在日期信息之间.这个(或者是这个)在美国是一个常见的日期时间表示吗?
Gia*_*zzi 15
这直接来自C.可能这一年后来被添加.这也\n很奇怪.在构建UNIX时可能是一个方便的功能,它通过使用得到了标准化.
注意:该函数是"过时的",可能会在更高版本的C中删除它.它被更强大的替换strftime().
POSIX没有关于选择的理由.
ESR写道:
在较旧的Unix中,以下函数可用于将时间和日期报告为字符串.它们连接在糟糕的设计选择中(日期字符串长度不可预测且包含尾随的"\n"),不能识别区域设置,并且在0之前或之后9999年具有未定义的行为.
我们也从第7版手册(1979年)中获得的信息也很少见手册页.
有人(克莱夫DW羽毛)寻找与你相同的信息(但直接与C标准组),但我找不到答案.只是因为在同一个线程上有一些不精确的电子邮件而纠正了C99 .
我认为很难获得更多信息.
它在美国并不常见,C理由甚至承认:
7.11本地化
....
日期和时间.标准函数
asctime返回一个字符串,其中包含月份和工作日名称的缩写,并返回一种格式的各种元素,即使在其原始国家/地区也可能被视为异常.
事后看来,它是那些永远不应该成为标准的功能之一.缺乏基本原理证明其包含是一个明显的迹象.