这是一个有点主观的问题,在大型方案中不是很重要,但是却经常使我烦恼。在文件名中添加时间戳似乎没有不言而喻的方法。
客观问题是文件名中的时间戳应该可排序。但是.NET可排序的日期格式(例如“ s”("yyyy-MM-ddTHH:mm:ss"
)和“ u”("yyyy-MM-dd HH:mm:ssZ"
))在文件名中无效,因为它们带有':'字符。
另一件事是,您应该轻松查看是否使用了通用时间或本地时间。实际上,用户似乎更喜欢本地时间而不是通用时间。
我最终使用了具有基本时间格式的ISO 8601:
- 当地时间格式字符串
"yyyy-MM-ddTHHmmsszz"
- UTC格式字符串
"yyyy-MM-ddTHHmmssZ"
在这些格式下,我当前的当地时间是"2009-08-08T151800+03"
UTC"2009-08-08T121800Z"
您还可以使用“ K”自动检测DateTime.Kind并使用"yyyy-MM-ddTHHmmssK"
,但随后必须替换':'字符。
还有其他建议吗?
编辑:到目前为止的一些注意事项:
"yyyy-MM-ddTHHmmsszz"
如果涉及多个时区,则本地时间+时区格式将不再可排序。在大多数情况下,如果有多余的信息,则可以删除时区信息,否则使用UTC。
另一件事是,UTC应始终标有“ Z”,“ GMT”或“ UTC”,以防止猜测和错误。