我们如何在 Flutter 中轻松地在 UTC 和本地时间之间转换 DateTime?

你好,

我喜欢让事情变得简单而有效。我需要为我自己的项目将 UTC 转换为本地时间。我想与您分享我的解决方案。

如果我们要开发一个国际化的应用程序,我们必须将 DateTime 转换为用户的本地时间。因为大多数国际应用程序在其数据库中将 DateTime 存储为 UTS。作为移动应用程序开发人员,我们应该将此 DateTime 数据转换为用户的本地时区。我们可以使用“data.toLocal()”方法来完成。但是如果我们向服务器发送数据,我们必须将 DateTime 值转换为 UTC。每次,我们都必须转换,这不是最好的解决方案。

JSON转换器呢?

大多数时候,我们在应用程序中使用 JSON 序列化。为此,我们编写模型以及toJSON和fromJSON方法。我们可以使用这些方法转换 DateTime 字段。我们会怎样做?当我们使用toJSON方法时,我们会将 DateTime 字段转换为 UTC 格式,而当我们使用fromJSON方法时,我们会将 DateTime 字段转换为本地格式。我们可以使用 JSONConverter 来做到这一点。

我们如何开发我们的转换器?

我们可以通过实现 JsonConverter 创建我们的转换器。我创建了一个名为UTCDateTimeConverter 的转换器。使用简单。我们将把UTCDateTimeConverter 作为一个属性添加到我们的模型中。并运行 build_runner。就这样。

import 'package:json_annotation/json_annotation.dart';

class UTCDateTimeConverter implements JsonConverter<DateTime, String> {
  const UTCDateTimeConverter(

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/131268206