帮助文档

前往官网
最新更新时间:2023-11-01 04:18:46

背景:

在使用轻联搭建流程的过程中,经常遇到上下游接口出入参中的日期时间格式不一致的情况。
为减少用户转换成本,轻联会根据您的输入或者您选择的变量,甚至根据您设置的表达式、代码的运行结果,自动识别出源格式(输入格式),并转换为ISO 8601标准日期时间格式。

标准:

轻联系统日期间的传输规范按照国际标准ISO 8601《数据元和交换格式 信息交换 日期和时间表示法》。
由于ISO 8601对于日期时间的表示也有多种形式,如YYYY-MM-DD或者YYYYMMDD均可。因此轻联需要统一一套标准日期时间格式,如下:

类型标识符使用 2022 年 12 月 31 日的示例
日期YYYY-MM-DD2022-12-31
时间HH:mm:SS23:59:59(默认为东八区,北京时间)
日期时间YYYY-MM-DD HH:mm:SS2022-12-31 23:59:59(默认为东八区,北京时间)

虽然轻联定义了以上标准,但在实际用户搭建流程时,并无法保证传入标准的日期时间格式,因此需要使用日期时间转换工具,甚至通过编码进行转换,降低了流程搭建效率。

处理格式:

可自动识别的格式:

日期

源数据识别格式备注
2022-12-31YYYY-MM-DD使用短横线分隔的年月日
2022/12/31YYYY/MM/DD使用左斜线分隔的年月日
2022年12月31日YYYY年MM月DD日使用汉字分隔的年月日
2022.12.31YYYY.MM.DD使用英文点分隔的年月日

 

时间

源数据识别格式备注
23:59:59hhⓂss使用英文冒号分隔的时分秒
23:59:59+08:00hh:mm:ss+hh:mm带有加减号表示时区
如果时区不是东八区,则自动转换为东八区时间
23点(时)23分59秒使用汉字分隔的年月日
23:59:59Zhh:mm:ssZ带有大写Z或小写z表示0时区
由于时区不是东八区,自动转换为东八区时间
23:59:59zhh:mm:ssz带有大写Z或小写z表示0时区
由于时区不是东八区,自动转换为东八区时间

日期时间(以上两种日期、时间格式任意组合,仅分隔符区分)

源数据识别格式备注
2022-12-31 23:59:59YYYY-MM-DD hh:mm:ss使用单个空格分隔符
2022-12-31T23:59:59YYYY-MM-DDThh:mm:ss带有大写T分隔符
2022-12-31t23:59:59YYYY-MM-DDthh:mm:ss带有小写t分隔符
1672502399ts时间戳秒 十位数字,从指格林威治时间(0时区)的1970年01月01日00时00分00秒起到指定时间的总秒数,转换时需要根据时区时间

以上日期时间格式,不需要用户选择,系统会自动识别,并转换为轻联标准格式。

可指定转换的格式:

除了上面可自动转换的格式以外,仍然具有一些常用的格式,系统无法识别,或者在自动识别时可能具有歧义,因此需要用户指定所选的格式:
日期

源数据识别格式备注
20221231YYYYMMDD不使用分隔符的年月日
12/31/2022MM/DD/YYYY月份和日期在前,且用左斜线分隔的年月日(美国常用)
31/12/2022DD/MM/YYYY日期和月份在前,且用左斜线分隔的年月日(欧洲常用)
31.12.2022DD.MM.YYYY日期和月份在前,且用英文点分隔的年月日(欧洲常用)
31-12-2022DD-MM-YYYY日期和月份在前,且用短横线分隔的年月日(欧洲常用)
Dec 31,2022MMM DD,YYYYMMM表示英文月份名称标识月份
如:Jan、Feb、Mar、Apr 、May、Jun、Jul、Aug、Sept、Oct、Nov、Dec()
31 Dec 2022DD MMM YYYY

时间

源数据识别格式备注
235959hhmmss不使用分隔符的完整时间
235959+0800hhmmss+hhmm带有加减号表示时区
T23:59:59+08:00Thh:mm:ss+hh:mm带有大写T或小写t表示时间开始标识
t23:59:59+08:00thh:mm:ss+hh:mm带有大写T或小写t表示时间开始标识
T23:59:59ZThh:mm:ssZ表示0时区的时间
115959 PMhhmmss PM使用AM/PM 指示符表示上午或者下午,需要自动加上12小时
11:59:59 Phh:mm:ss P使用A/P 指示符表示上午或者下午,需要自动加上12小时

日期时间(以上两种日期、时间格式任意组合,仅分隔符区分) |

源数据识别格式备注
20221231235959YYYYMMDDhhmmss不使用分隔符的完整时间
31420800ts非十位的秒级时间戳,如8位数字的 31420800 表示1970年12月31日 00时00分00秒;
1672502399999ts毫秒级时间戳,如11位数字的 31420800000 表示1970年12月31日 00时00分00秒;

无法识别的格式:

当遇到其他日期时间格式时,用户可使用函数或者表达式将源格式转换为YYYY-MM-DD HH:mm:SS,或者轻联可自动识别的任意格式。

处理规则

时区处理

由于在ISO 8601标准时间格式中存在时区概念,处理逻辑如下:

1)如果源格式中没有时区,则统一按照东八区进行处理
例如:2022-12-31 23:59:59 直接转换为2022-12-31 23:59:59

2)如果源格式中含有时区,则转换为东八区进行处理
例如:2022-12-31 23:59:59Z 直接转换为2023-01-01 07:59:59

时间戳处理

逻辑同时区处理,当下转换为 东八区的时间
例如:1672502399,转换为:2022-12-31 23:59:59+08:00 简写为: 2023-01-01 10:59:59

其他处理

1)转换失败时,系统进行报错:
错误内容:日期格式参数在进行格式转换时发生错误;
2)输入为空时,或变量为空值时,不会进行转换处理。

如果您在文档使用中遇到问题或者有改进建议,请点击 在线反馈