Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 当用户';s时区已知,bot框架能否正确处理昨天/明天?_Botframework - Fatal编程技术网

Botframework 当用户';s时区已知,bot框架能否正确处理昨天/明天?

Botframework 当用户';s时区已知,bot框架能否正确处理昨天/明天?,botframework,Botframework,在某些情况下,机器人可能知道用户的时区。是否有办法将这些知识传递给bot框架,以便它能够正确处理某些日期表单,例如“明天”和“昨天”?甚至像“下周五”这样的事情有时对时区也很敏感 目前,假设用户的时区偏移量为零,似乎可以处理这些问题。慢性解析器似乎无法访问,因此您无法对其进行任何更改。我看到3种解决方案 解决方案1:创建您自己的RecognizeDateTime类以使用utc时间或您想要的方式 解决方案2:当您获得日期(例如在验证方法中)时,将utc偏移量添加到时间中。这将保留utc时间和本地时

在某些情况下,机器人可能知道用户的时区。是否有办法将这些知识传递给bot框架,以便它能够正确处理某些日期表单,例如“明天”和“昨天”?甚至像“下周五”这样的事情有时对时区也很敏感


目前,假设用户的时区偏移量为零,似乎可以处理这些问题。

慢性解析器似乎无法访问,因此您无法对其进行任何更改。我看到3种解决方案

解决方案1:创建您自己的
RecognizeDateTime
类以使用utc时间或您想要的方式

解决方案2:当您获得日期(例如在验证方法中)时,将utc偏移量添加到时间中。这将保留utc时间和本地时间的正确日期

dateTime += TimeZone.CurrentTimeZone.GetUtcOffset(dateTime);

解决方案3:当使用类似“昨天”的字符串创建日期时间时,日期是正确的,但时间默认为00:00或12AM。为了降低敏感度,只需将UTC时间增加12小时。这将在几乎所有时区保留一天。(所有12+以上的时区都会有问题。幸运的是那里没有很多人。)(这是我目前用于解决方案之一的解决方案)

您的问题是LUIS如何识别内置日期和时间?不,除了LUIS之外,bot框架中还有代码使用Chronic解析日期/时间实体。问题是没有一种方法可以告诉bot框架告诉用户的时区(据我所知)?据我所知,这是由LUIS完成的,因此一些代码可能会澄清一些事情。框架有时会自行进行解析,这是出于感谢——我按照这些思路做了一些工作,作为一种变通方法。当调用使用datetime实体的意图时,我只是使用为正确时区配置的慢性解析器再次解析它们。应该有更好的办法,但这会奏效的。