我已经在v3版本中构建了一个漫游器。我正在使用自适应卡要求用户选择日期和时间。客户端我正在使用Direct Line API。在Bot Emulator中进行测试后,它将可以正常工作。但是,当我的机器人托管在Azure上时,有时我将当前日期与用户输入的日期进行比较时会引发异常。但有时效果很好。我无法调试。
异常:字符串未被识别为有效的DateTime。
修改1:
@TheGeneral由于收到的IAwaitable<IMessageActivity> result
是动态的,所以我只是将“当前日期”与用户输入的日期进行比较。
下面是我将当前日期转换为本地服务器时间的方法。
var info = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
DateTimeOffset usersTime = TimeZoneInfo.ConvertTime(localServerTime, info);
DateTime Todaydate = usersTime.DateTime;
@ bradbury9我没有解析日期,因为日期格式随浏览器而变化。 IE上也不支持自适应卡日期和时间选择器。
请帮助我解决此问题。
答案 0 :(得分:1)
如果获取String was not recognized as a valid DateTime
,则问题是%100您尝试解析的用户输入日期格式以及主机操作系统的区域设置。它可以在您的计算机上使用,因为日期格式与操作系统的配置匹配。它在Azure上中断,因为您的云服务器位于其他区域,并且配置为其他日期格式。
我敢打赌,您的UI允许以类似于DD.MM.YYYY
的格式输入内容,但是Azure服务器正在尝试将其解析为类似MM.DD.YYYY
的形式。
您的解决方案是确保您的日期输入UI会为用户数据生成区域性不变的输出。提供有关您的前端的更多信息,您可能会收到更详细的建议。