首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在dart中更改本地时区

在dart中更改本地时区
EN

Stack Overflow用户
提问于 2021-11-27 07:33:44
回答 1查看 1.4K关注 0票数 0

在我的本地机器上,这个日期DateTime(2021, 10, 27, 00, 00, 00)在GMT+4

当我将此代码推送到远程服务器时,同一日期将使用GMT+2解释,因为远程服务器位于GMT+2时区,因此代码的行为有所不同。

我知道我可以使用DateTime.utc构造函数,但是我希望手动输入这个日期,并且始终遵循GMT+4。

因此,解决方案也是将远程服务器的本地更改为GMT+4。但是,如何仅在省道上下文中这样做呢?(不全系统)

EN

Stack Overflow用户

回答已采纳

发布于 2021-11-28 23:43:08

不幸的是,DateTime本机不支持时区,正如贾梅斯林建议的那样,您必须使用第三方包,如时区

如何使用

步骤1:安装软件包

代码语言:javascript
运行
复制
dependencies:
  timezone: any

步骤2:初始化库

main.dart

代码语言:javascript
运行
复制
import 'package:timezone/data/latest.dart' as tz;

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  tz.initializeTimeZones();
  runApp(MyApp());
}

备注:当您导入此包以添加as tz时,建议使用它。

步骤3:定义您想要的时区

代码语言:javascript
运行
复制
import 'package:timezone/standalone.dart' as tz;

final detroit = tz.getLocation('America/Detroit');

步骤4:使用TZDateTime

代码语言:javascript
运行
复制
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)从格式化的字符串直接解析日期。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70132867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档