首页 > 解决方案 > 颤振:DateFormat.parse 仅在桌面 Win32 上在午夜返回错误时间

问题描述

我正在尝试将字符串解析为颤动的 DateTime 。在 android、iOS 和 Web 上,该程序完美运行,但在 Windows 上,它一直返回,仅在午夜,错误的时间。

DateFormat('HH:mm').parse('00:25');

在 Windows 上返回1970-01-01 01:25:00.000,但1970-01-01 00:25:00.000在任何其他操作系统上返回,而任何小时 >= 1 返回正确的值。

如果我尝试使用 parseStrict 方法,则会发生以下情况

DateFormat('HH:mm').parseStrict('00:25');

返回FormatException: Error parsing 00:25, invalid hour value: 0 in it with time zone offset 1:00:00.000000. Expected value between 1 and 1. Date parsed as 1970-01-01 01:25:00.000..

提前感谢您的帮助

编辑:这个 DateTime 在本地时区,我不想解析 UTC 时间。不过,我注意到,如果我添加日期,则 DateTime 似乎可以正确解析。但我只需要时间。这些值是商店的营业时间。我知道我应该使用 TimeOfDay 类,但我不能使用它,因为它没有 compareTo 方法,这是我的案例场景所需要的。无论如何,我已经尝试过 Android、iOS 和 Web,它们都可以正确解析时间,唯一有问题的是 Windows

标签: flutterdart

解决方案


推荐阅读