注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

将字符串转换为日期

支持于: 批处理, 流处理

根据Java DateTimeFormatter,返回给定格式化字符串的日期。默认格式为yyyy-MM-ddyyyy-MM-dd'T'HH:mm:ss.SSSXXX。格式按顺序运行,第一个匹配的格式将被返回。

表达式类别: 转换, 日期时间

声明的参数

  • 字符串 - 要解析为日期的字符串列。
    Expression<字符串>
  • 非必填 Formats - 输入日期格式(例如yyyy-MM-dd或MM/dd/yyyy)。
    List<Literal<字符串>>

输出类型: 日期

示例

示例 1: 基本情况

描述: 日期格式是非必填的 参数值:

  • 字符串: 2020-04-28
  • Formats: null

输出: 2020-04-28


示例 2: 基本情况

描述: 日期格式是非必填的 参数值:

  • 字符串: 2020-04-28T01:00:00.000Z
  • Formats: null

输出: 2020-04-28


示例 3: 基本情况

描述: 使用单一格式解析日期。 参数值:

  • 字符串: 28-2020-04
  • Formats: [dd-yyyy-MM]

输出: 2020-04-28


示例 4: 基本情况

描述: 使用多种格式解析日期 参数值:

  • 字符串: 28-2020-04
  • Formats: [yyyy-MM-dd, dd-yyyy-MM]

输出: 2020-04-28


示例 5: 基本情况

描述: 如果日期缺少前导零,使用"yyyy-M-d"格式仍能正确解析。 参数值:

  • 字符串: date
  • Formats: [yyyy-M-d]
date输出
2020-04-082020-04-08
2020-4-82020-04-08
2020-10-102020-10-10

示例 6: 基本情况

描述: 字符串可以包含时间戳 参数值:

  • 字符串: 28-2020-04 10:12:00 +01
  • Formats: [dd-yyyy-MM HH:mm X]

输出: 2020-04-28


示例 7: 基本情况

描述: 时区可以更改日期。 参数值:

  • 字符串: 28-2020-04 10:12:00 +11
  • Formats: [dd-yyyy-MM HH:mm X]

输出: 2020-04-27


示例 8: 空值情况

描述: 空列保持为空 参数值:

  • 字符串: null
  • Formats: [dd-yyyy-MM]

输出: null


示例 9: 边缘情况

描述: 无效数据解析为null 参数值:

  • 字符串: 28-20201-14
  • Formats: [dd-yyyy-MM]

输出: null


示例 10: 边缘情况

描述: 不正确的格式将所有内容解析为null 参数值:

  • 字符串: 04-2020-28
  • Formats: [dd-yyyy-MM]

输出: null


示例 11: 边缘情况

描述: 仅基于年份周的日期不支持。 参数值:

  • 字符串: 2023
  • Formats: [yyyy]

输出: null