在我的本地机器上,这个日期DateTime(2021, 10, 27, 00, 00, 00)在GMT+4
当我将此代码推送到远程服务器时,同一日期将使用GMT+2解释,因为远程服务器位于GMT+2时区,因此代码的行为有所不同。
我知道我可以使用DateTime.utc构造函数,但是我希望手动输入这个日期,并且始终遵循GMT+4。
因此,解决方案也是将远程服务器的本地更改为GMT+4。但是,如何仅在省道上下文中这样做呢?(不全系统)
发布于 2021-11-28 23:43:08
不幸的是,DateTime本机不支持时区,正如贾梅斯林建议的那样,您必须使用第三方包,如时区。
如何使用
步骤1:安装软件包
dependencies:
timezone: any步骤2:初始化库
main.dart
import 'package:timezone/data/latest.dart' as tz;
void main() {
WidgetsFlutterBinding.ensureInitialized();
tz.initializeTimeZones();
runApp(MyApp());
}备注:当您导入此包以添加as tz时,建议使用它。
步骤3:定义您想要的时区
import 'package:timezone/standalone.dart' as tz;
final detroit = tz.getLocation('America/Detroit');步骤4:使用TZDateTime类
import 'package:timezone/standalone.dart' as tz;
final localizedDt = tz.TZDateTime.from(DateTime.now(), detroit);您可以根据需要为TZDateTime使用以下构造函数:
TZDateTime(...)TZDateTime.utc(...)TZDateTime.local(...)TZDateTime.now(...)TZDateTime.fromMillisecondsSinceEpoch(...)TZDateTime.fromMicrosecondsSinceEpoch(...)TZDateTime.from(...)还可以使用TZDateTime.parse(Location location, String formattedString)从格式化的字符串直接解析日期。
https://stackoverflow.com/questions/70132867
复制相似问题