You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WSO2 ESB中以Property实现12小时制转24小时制

在WSO2 ESB中通过Property实现12小时制时间转24小时制

你可以利用WSO2 ESB的Property中介器结合XPath 2.0的日期时间处理函数,实现12小时制时间到24小时制数字格式的转换。以下是具体实现方案:

核心实现思路

  • 将输入的12小时制时间(如6:00PM)转换为符合xs:dateTime规范的格式
  • 使用format-dateTime函数将其格式化为24小时制的时分组合
  • 可选处理:去除开头的前导零(如将0900转为900)

配置示例

假设输入时间存储在名为inputTime的属性中,可通过以下Property中介器完成转换:

<!-- 定义输入的12小时制时间 -->
<property name="inputTime" value="6:00PM" scope="default" type="STRING"/>

<!-- 执行转换并存储结果 -->
<property name="convertedTime"
          expression="replace(format-dateTime(xs:dateTime(concat('1970-01-01T', replace($ctx:inputTime, '([0-9]+):([0-9]+)(AM|PM)', '$1:$2:00 $3'))), '[H01][m01]'), '^0', '')"
          scope="default" type="STRING"/>

表达式解析

  • replace($ctx:inputTime, '([0-9]+):([0-9]+)(AM|PM)', '$1:$2:00 $3'):将6:00PM转换为6:00:00 PM,补全秒数并规范时段格式
  • xs:dateTime(concat('1970-01-01T', ...)):拼接固定日期与处理后的时间,构造合法的xs:dateTime对象
  • format-dateTime(..., '[H01][m01]'):将日期时间格式化为24小时制的两位小时+两位分钟,如1800
  • replace(..., '^0', ''):移除结果开头的前导零(若不需要此处理,可删除该部分)

验证示例

  • 输入:6:00PM → 输出:1800
  • 输入:9:30AM → 输出:930(若保留前导零则为0930)

内容的提问来源于stack exchange,提问作者sathish Sankarzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:27:37