【问题标题】:Alternative to colon in a time format以时间格式替代冒号
【发布时间】:2015-02-27 19:06:29
【问题描述】:

ISO 8601 建议日期和时间采用以下格式:

2014-12-29T16:11:20+00:00

我比较喜欢这种格式,因为它允许词法排序。但是有一个小问题:某些文件系统不允许文件名中使用冒号(至少通常不允许)。 ISO 8601 确实允许省略冒号,但我宁愿有 some 符号而不是数字一起运行:

2014-12-29T161120+0000

ISO 8601 是否允许使用冒号以外的符号?我找不到任何迹象表明它确实如此。如果没有,我可以使用另一个公认的符号吗? (也许另一个标准提出了这样的符号?)

【问题讨论】:

  • @user2864740 是的,如问题中所述。 =)
  • 这样你就有了。冒号或什么都没有。 (wiki article 很好地突出了右侧框中显示的已接受表格。)
  • 我在blog.xam.de/2016/07/… 的帖子中提出了一种基于 ISO 8601 的格式——如果我们能就格式达成一致的话,我们的世界会变得更容易:-)

标签: filenames iso8601


【解决方案1】:

没有。

ISO 8601 仅允许使用冒号 (:) 来分隔扩展格式的时间组件:

基本格式为[hh][mm][ss],扩展格式为[hh]:[mm]:[ss]。

没有备用扩展格式的规定。

【讨论】:

  • “如果没有,我可以使用另一个公认的符号吗?(也许另一个标准提出了这样的符号?)”所以也没有其他被广泛认可的符号?
  • 那么它就不是 ISO 8601。你可以用你自己的格式使用你喜欢的任何符号。但不是:与日期不同,时间几乎完全用冒号分隔,如果有的话 - 这已经过滤到格式标准中。另一个“网络标准”是RFC 822/1123
【解决方案2】:

对于组合的日期和时间表示,您必须使用日期和时间的基本格式或日期和时间表示的扩展格式,以符合 ISO 8601。

符合 ISO 8601 的日期和时间表示示例:

2020-12-03T15:05:57+00:00 (extended)
2020-12-03T15:05:57Z (extended)
20201203T150557Z (basic)

为了最大限度地兼容各种操作系统文件命名要求和 ISO 8601 合规性,我认为最后一个示例或类似的东西应该可以工作。

参考:https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations

【讨论】:

    【解决方案3】:

    没有其他规定,你不能有一个完整的日期时间表达式,前半部分是扩展格式,最后一个是基本格式;它们必须具有相同的格式。

    一种解决方法,我在解决方法中强调,是用其他东西分割字符串,例如句点或下划线,分隔两个有效表达式,扩展格式的日期和基本格式的时间:例如,myfilename_2020-12-13.T0006Z_otherNotes.extmyfilename_2020-12-13_T0006Z_otherNotes.ext

    您必须清楚使用此类文件所涉及的其他部分 - 主要是关于机器的 - 因为它不是完整的日期时间表达式,而是 2 个有效的格式,每个格式不同 - 扩展,然后是基本 - 分隔由一个商定且明确的字符(为此我专门提到了句点/下划线而不是破折号/连字符)。

    这种方法的明显缺点是:时间部分更难阅读,其他人可能会认为您错误地实施了 ISO,或者您对它的理解很差,其实不然。

    好的方面...它在 Windows 中工作,它以正确的顺序组织文件系统中的元素,尽管有操作系统,它遵循 ISO 标准(以特殊方式)并且它与机器兼容(来自脚本到 AI 和中间的一切)。

    这是一种解决方法。我重复一遍。

    最后一点,我真的很想知道为什么执行 ISO 8601-2019 的人没有考虑在文件名中使用 ISO 的问题,或者他们完全没有意识到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      相关资源
      最近更新 更多