修改 time:now() 小于一小时
Modify time:now() to be less one hour
首先,我不太清楚这个的核心语言是什么。我关注了一个 tutorial.
我的代码如下所示:
{
"type": "dateRange",
"dateRange": "${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}/${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}"
}
这给了我以下信息:
{
"type": "dateRange",
"dateRange": "2019-04-01T00:00:00.000/2019-04-01T00:00:00.000"
}
我想做的是在第一次约会时休息 1 小时。这是我试过的:
之前:
${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}
之后:
${time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - (3600), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}
虽然这似乎是有效代码,但它说它无效。请有人帮助我了解如何将 "before" 代码修改为距现在 1 小时。
你可以这样试试:
然后将您的日期转换为毫秒
( dateMilliseconds - 3600000)
结果需要转换为日期
首先,如您post的评论所述,1h是3600000毫秒
然后,我从未使用过 StreamSets
,而是查看 the doc:
您尝试使用的方法的签名是 time:dateTimeToMilliseconds(<Date object>)
并且它 returns 是 Long
它的描述是:
Converts a Date object to an epoch or UNIX time in milliseconds.
所以你不能用这些参数调用它, 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS'
这可能是它期望的有效语法:
${time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - (3600000))}
如果你想使用时区,你应该使用其他功能:
time:millisecondsToDateTime(<long>)
returns一个Date object
和
time:extractStringFromDateTZ(<Date object>, <time zone>, <format string>)
returns 一个字符串
你不能这样把它们串起来吗?
${time:extractStringFromDateTZ(
time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - 3600000),
'UTC',
'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}
首先,我不太清楚这个的核心语言是什么。我关注了一个 tutorial.
我的代码如下所示:
{
"type": "dateRange",
"dateRange": "${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}/${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}"
}
这给了我以下信息:
{
"type": "dateRange",
"dateRange": "2019-04-01T00:00:00.000/2019-04-01T00:00:00.000"
}
我想做的是在第一次约会时休息 1 小时。这是我试过的:
之前:
${time:extractStringFromDateTZ(time:now(), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}
之后:
${time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - (3600), 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}
虽然这似乎是有效代码,但它说它无效。请有人帮助我了解如何将 "before" 代码修改为距现在 1 小时。
你可以这样试试:
然后将您的日期转换为毫秒
( dateMilliseconds - 3600000)
结果需要转换为日期
首先,如您post的评论所述,1h是3600000毫秒
然后,我从未使用过 StreamSets
,而是查看 the doc:
您尝试使用的方法的签名是 time:dateTimeToMilliseconds(<Date object>)
并且它 returns 是 Long
它的描述是:
Converts a Date object to an epoch or UNIX time in milliseconds.
所以你不能用这些参数调用它, 'UTC', 'yyyy-MM-dd\'T\'HH:mm:ss.SSS'
这可能是它期望的有效语法:
${time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - (3600000))}
如果你想使用时区,你应该使用其他功能:
time:millisecondsToDateTime(<long>)
returns一个Date object
和
time:extractStringFromDateTZ(<Date object>, <time zone>, <format string>)
returns 一个字符串
你不能这样把它们串起来吗?
${time:extractStringFromDateTZ(
time:millisecondsToDateTime(time:dateTimeToMilliseconds(time:now()) - 3600000),
'UTC',
'yyyy-MM-dd\'T\'HH:mm:ss.SSS')}