gpt4 book ai didi

date - 在 xslt 或 TIBCO BW 中将多个 dateTime 字符串解析为 dateTime 格式

转载 作者:行者123 更新时间:2023-12-03 16:23:33 25 4
gpt4 key购买 nike

这是格式

<Record>
<DateTime>2012-11-11T17:06:54</DateTime>
<Description>Date1</Description>
</Record>
<Record>
<DateTime>2012-11-11T17:06:54</DateTime>
<Description>Date2</Description>
</Record>
<Record>
<DateTime>2000-09-29T15:28:08</DateTime>
<Description>Date3</Description>
</Record>
<Record>
<DateTime>29-11-2012T14:35:53</DateTime>
<Description>Date4</Description>
</Record>
<Record>
<DateTime>2000-09-29T15:28:10</DateTime>
<Description>Date5</Description>
</Record>

我希望他们立即解析为 dateTime 格式,而不使用像“YY:MM:dd”这样的格式......

我在此格式之前使用过,但我无法调试或发送输出,因为第四个记录标签具有不同的格式,如您在上面的示例中所见 <DateTime>29-11-2012T14:35:53</DateTime> .

有谁知道我该如何解决这个问题..在我使用的事件输入中
$duration=xsd:dateTime(DateTime[1])
format-dateTime($duration,"[Y0001]-[M01]-[D01]")

但由于 <DateTime>29-11-2012T14:35:53</DateTime>,它没有向我显示任何内容.

我想要类似这样的输出:
<Calendar>
<Record>
<DateTime>2000-09-29T15:28:07</DateTime>
<Description>Date4</Description>
<Difference>6476 Days 8 Hours 18 Minutes 48 Seconds</Difference>
</Record>
</Calendar>

最佳答案

xsd:dateTime() 函数只能解析有效的ISO 8601 dateTime 格式的值。

您可以测试该值是否为 castable as xsd:dateTime ,对于那些不匹配的,使用正则表达式来测试它是否匹配已知格式,以及 replace() 使用正则表达式和捕获组来构造格式正确的 ISO 8601 格式的 dateTime 值,可以解析为 xsd:dateTime :

if (DateTime castable as xsd:dateTime ) then 
xsd:dateTime(DateTime)
else
if (matches(DateTime, '\d\d-\d\d-\d\d\d\dT.*')) then
xsd:dateTime(replace(DateTime, '(\d+)-(\d+)-(\d+)(T.*)', '$3-$2-$1$4'))
else ()

您可以使用您想要支持的其他日期时间模式添加额外的 if/else block 。

一旦你可以构建 xsd:dateTime对象,然后您可以执行所需的计算。

关于date - 在 xslt 或 TIBCO BW 中将多个 dateTime 字符串解析为 dateTime 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com