这是一个有点主观的问题,在大计划中不是很重要,但经常让我烦恼。似乎没有不言而喻的方法可以在文件名中添加时间戳。
客观问题是文件名中的时间戳应该是可排序的。但 .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”,以防止猜测和错误。