日期时间总是给 1200HRS
Date-time always giving 1200HRS
我正在开发聊天机器人并使用 Dialogflow 的 sys.date-time 实体。因此,当我向机器人显示一些日期时,例如 "Today" 或 "Feb 14",我总是得到
"parameters": {
"date-time": "2021-02-14T12:00:00Z"
}
而我想要
"parameters": {
"date-time": "2021-02-14T00:00:00Z"
}
现在我正在使用我的应用程序将 datetime
替换为 hours=0
,但是,我也希望机器人提供
"parameters": {
"date-time": "2021-02-14T08:00:00Z"
}
当我说 "feb 14 8AM"(明确提到小时)时,应用程序将替换小时。所以必须从 Dialogflow 方面修复它。请问有什么解决办法吗?
对于 Dialogflow 系统实体 @sys.date-time
,这是按照 ISO-8601 格式的默认行为,您可以做的是解决这个问题,而不是使用 @sys.date-time
,请按照以下步骤操作:
- 对日期和时间使用两个单独的参数
@sys.date
和 @sys.time
。
- 将
@sys.date
设为必需,将@sys.time
设为可选。
- 为
@sys.time
设置一些适当的默认值作为 00:00:00
这样当没有像 FEB 14 那样给出时间时它将把时间作为默认值。
- 在您的应用中,您可以使用这两个值。
示例意图
希望对您有所帮助!
我能够通过正确分析 value
收到的 @sys.date-time
内置多个短语的 Dialogflow 实体来解决这个语义错误。
当只提到 day/date 时(比如 Feb 14 2020
),这是我收到的数据:
"parameters": {
"date-time": "2020-02-14T12:00:00Z"
}
当我明确提到时间和日期(比如Feb 14 3pm
)时,这是收到的数据:
"parameters": {
"date-time": {
"date_time": "2021-02-14T15:00:00Z"
}
}
这里的区别在于,在第二种情况下,嵌套字典呈现在date-time
。
为了区分它们,我能够在我的应用程序上分割 ISO-8601 格式并将 12:00:00
替换为 00:00:00
,但是如果我收到的是字典,我没有 slice/replace它。
我正在开发聊天机器人并使用 Dialogflow 的 sys.date-time 实体。因此,当我向机器人显示一些日期时,例如 "Today" 或 "Feb 14",我总是得到
"parameters": {
"date-time": "2021-02-14T12:00:00Z"
}
而我想要
"parameters": {
"date-time": "2021-02-14T00:00:00Z"
}
现在我正在使用我的应用程序将 datetime
替换为 hours=0
,但是,我也希望机器人提供
"parameters": {
"date-time": "2021-02-14T08:00:00Z"
}
当我说 "feb 14 8AM"(明确提到小时)时,应用程序将替换小时。所以必须从 Dialogflow 方面修复它。请问有什么解决办法吗?
对于 Dialogflow 系统实体 @sys.date-time
,这是按照 ISO-8601 格式的默认行为,您可以做的是解决这个问题,而不是使用 @sys.date-time
,请按照以下步骤操作:
- 对日期和时间使用两个单独的参数
@sys.date
和@sys.time
。 - 将
@sys.date
设为必需,将@sys.time
设为可选。 - 为
@sys.time
设置一些适当的默认值作为00:00:00
这样当没有像 FEB 14 那样给出时间时它将把时间作为默认值。 - 在您的应用中,您可以使用这两个值。
示例意图
希望对您有所帮助!
我能够通过正确分析 value
收到的 @sys.date-time
内置多个短语的 Dialogflow 实体来解决这个语义错误。
当只提到 day/date 时(比如 Feb 14 2020
),这是我收到的数据:
"parameters": {
"date-time": "2020-02-14T12:00:00Z"
}
当我明确提到时间和日期(比如Feb 14 3pm
)时,这是收到的数据:
"parameters": {
"date-time": {
"date_time": "2021-02-14T15:00:00Z"
}
}
这里的区别在于,在第二种情况下,嵌套字典呈现在date-time
。
为了区分它们,我能够在我的应用程序上分割 ISO-8601 格式并将 12:00:00
替换为 00:00:00
,但是如果我收到的是字典,我没有 slice/replace它。