重复操作:开始时间和后续频率格式约定

recurring action: starttime and subsequent frequency formatting convention

我正在构建一项服务,用户可以在其中注册在任何给定日期启动并以任何给定频率重复发生的付款计划。为了概括起见,我认为这是一个有开始时间的循环动作。

由于日期和频率由第三方确定,我想定义一个字符串格式,描述开始时间和频率以确保与各方和解释函数的最大兼容性的方式存储在数据库中, 却又简洁明了

由于粒度只需要以天为单位,所以我想到了以下格式:

YYYY/MM/DD%F

具体例子是:

2018/01/01%1M,表示2018年1月1日首付款,每1个月定期付款。

是否有任何关于这样做的约定、ISO 标准、最佳实践等? 您是否预见到我提出的解决方案中有任何注意事项?例如,格式是否应包含有关时区的信息?或者我应该包括一天中的时间以确保兼容性?

是的,ISO 8601 定义了日期和时间段的标准格式。不过,至少我不这么认为。

ISO 日期类似于 2018-09-3020180930。带连字符的形式是迄今为止最常用的形式,因此无论是为了可读性还是为了兼容性,我都会推荐它。

ISO 时期看起来有点不寻常。 P1M表示一个月的时间。您可以拥有 P1Y(一年)、P3M(3 个月)、P2W(2 周)以及您梦寐以求的一切。链接的维基百科文章提到“例如,"P3Y6M4DT12H30M5S" 表示 "three years, six months, four days, twelve hours, thirty minutes, and five seconds" 的持续时间。”

ISO 8601 也有日期时间格式,日期带有时间,有和没有与 UTC 的偏移量。从你提供的信息中我无法判断你是否需要这些。如果您发现需要,该选项就在那里。

Link: ISO 8601 在维基百科上。