第三百八十九回

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 获取所有时区
    • 2.2 转换时区时间
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容,本章回中将介绍timezone包.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在前面章回中介绍了获取当前时区的内容,本章回将介绍一个与时区相关的包,它虽然不能获取到当前时区,但是可以查看所有的时区,而且可以把某个时间转换成
不同时区下的时间,本章回中将介绍timezone包的用法。

2. 使用方法

我们介绍的timezone包属于三方开发的包,把它添加到yaml配置文件就可以导入项目中使用,它主要提供两大功能:获取所有时区和转换时区时间.

2.1 获取所有时区

该包提供了IANA时区数据库,可以用不同的头文件导入到项目中。时区在数据库中以Map形式存放,它的key和value都一样,都是时区标志,比如Asia/Shanghai.

2.2 转换时区时间

该包可以把某个时间转换成特定时区下的时间,我们可以用它来获取不同国家和地区的时间。具体的实现步骤如下:

  • 使用getLocation()方法创建一个时区对象;
  • 使用包TZDateTime类的构造方法创建新的时间,这个新时间就是转换后时间;
  • 使用TZDateTime类的from方法创建新的时间,这个新时间就是转换后时间;
    上面介绍的步骤中最后两个步骤的功能都一样,只是使用的方法不同而已,它们都可以把某个时间转换成指定时区下的时间,如何指定时区呢?只需要把第一步中创建的
    时区传递给相关的方法就可以,我们将在后面的小节中通过具体的示例代码来演示。

3. 示例代码

import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;


var tzLocation = tz.timeZoneDatabase.locations;
///这个输出的数据库,不过一共有430个而且还在更新
for(int i=0; i<tzLocation.values.length; i++) {
   debugPrint("tz $i timeZone: [${tzLocation.keys.toList()[i]} - ${tzLocation.values.toList()[i]}]");
}


var bjTimezone = tz.getLocation("Asia/Shanghai");
var ldTimezone = tz.getLocation("Europe/London");

///把2024-1-1-12:13这个时间转换成北京时区下的时间
var time = tz.TZDateTime(bjTimezone,2024,1,1,12,13);
debugPrint("change to bjTime is $time");

///转换时间:北京时间8点转换成伦敦时间是几点?通过输出内容可以看到
var ltTime = tz.TZDateTime.from(bjTime,ldTimezone);
debugPrint("bjTime is $bjTime, ltTime: ${ltTime}");

我们在上面的示例代码中演示了如何获取时区数据库,并且通过遍历的方式打印出了数据库中所有地时区。我们还提到了两种转换时区时间的方法,建议大家自己动手去实
践,这样可以看到所有的时区。同时可以自己指定时间然后查看转换后的时区时间。

4. 内容总结

最后,我们对本章回中的内容做一个全面的总结:

  • timezone包提供了所有的时区数据库;
  • timezone包不能获取到当前系统的时区;
  • timezone包可以把某个时间转换成指定时区下的时间;
    看官们,与"timezone包"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/443903.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

qsort函数的用法及参数的讲解

第一种用法展示&#xff1a;&#xff08;整形数组的qsort&#xff09; 一&#xff0c;qsort函数的定义&#xff1a; qsort 函数的定义&#xff1a;void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); 使用其需要包含头文件&#x…

Echarts 报提示 There is a chart instance already initialized on the dom.

问题原因&#xff1a; 每次执行 Echarts图例方法都会拿到相关的dom元素执行Echarts图例初始化操作 但是每次执行的时候拿到的dom元素又是相同的&#xff0c;Echarts初始化执行的时候检查到这个dom上面已经有了一个 图表了 就不会再重新拿到这个dom元素执行初始化操作 解决方案&…

CSRF攻击解析:原理、防御与应对策略

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【蓝牙协议栈】【经典蓝牙】【BLE蓝牙】蓝牙协议规范(射频、基带链路控制、链路管理)

目录 1. 蓝牙协议规范&#xff08;射频、基带链路控制、链路管理&#xff09; 1.1 射频协议 1.2 基带与链路控制协议 1.3 链路管理器 1. 蓝牙协议规范&#xff08;射频、基带链路控制、链路管理&#xff09; 蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。与开放系…

【数据库】数据库学习使用总结DDL DML 及常用的条件查询语句

目录 一、数据库介绍 二、数据库系统 DBMS&#xff1a; 三、DDL 1、操作数据库&#xff08;创建和删除&#xff09; 创建表 ——也可以利用navicat等工具直接创建 删除表 2、约束&#xff1a; 主键约束 唯一的标识一条数据&#xff0c;该字段的数据不允许重复 主键不可…

从零到一,构建坚如磐石的Redis 7高可用集群:全程实录与关键技术详解

1、引言 在日常的开发中&#xff0c;无论是主从复制还是哨兵模式&#xff0c;都在高并发的场景中存在致命的缺点&#xff1a; 主从复制&#xff1a;当Master Redis机器挂掉之后&#xff0c;Slave依旧可以读取数据&#xff0c;但是由于Master不能写数据了&#xff0c;所以就会…

MyBatis框架

目录 一、MyBatis集成 1.项目搭建 1.1.idea中创建maven项目 1.2导入maven包 2.MyBatis集成 2.1MyBatis配置文件 2.2.创建MyBatisUtils 2.3 测试Mybatis是否可用 2.4.创建模型 2.5.productMapper接口 2.6创建productMapper.xml文件 2.7注册mapper.xml 3.1获取单个对象…

vue3项目报Parsing error: Cannot find module ‘typescript‘

vue3项目报Parsing error: Cannot find module ‘typescript’ 解决办法&#xff0c;安装typescript&#xff0c;然后一定记得 退出vscode&#xff0c;再重新打开项目即可。 npm install typescript --save-dev

【产品经理方法论——BRD文档模板】

一、BRD(Business Requirement Document)商业需求文档 BRD文档是面对公司高层&#xff0c;目的是获得公司资金、资源的支持开展项目。一般的BRD文档展示方式是PPT。 下面的思维导图是BRD文档的六大模块。 方案背景方案预测产品规划盈利模式收益与成本风险与对策 1. 方案背景 …

2024038期传足14场胜负前瞻

2024038期售止时间为3月10日&#xff08;周日&#xff09;20点30分&#xff0c;敬请留意&#xff1a; 本期深盘多&#xff0c;1.5以下赔率3场&#xff0c;1.5-2.0赔率2场&#xff0c;其他场次是平半盘、平盘。本期14场整体难度中等偏上。以下为基础盘前瞻&#xff0c;大家可根据…

FreeRTOS学习笔记-基于stm32(3)中断管理

一、什么是中断 通俗点讲就是让CPU停止当前在做的事&#xff0c;转而去做更紧急的事。 二、中断优先级分组 这个紧急的事也有一个等级之分&#xff0c;优先级越高越先执行。stm32使用中断优先配置寄存器的高4位&#xff0c;共16级的中断优先等级。 stm32的中断优先等级可以分为…

链表|142.环形链表

ListNode *detectCycle(ListNode *head) {ListNode *fast head, *slow head;while (fast && fast->next) {// 这里判断两个指针是否相等&#xff0c;所以移位操作放在前面slow slow->next;fast fast->next->next;if (slow fast) { // 相交&#xff0c…

【Godot4自学手册】第二十二节完成主人公的闪现功能

这一节我们主要自学主人公的闪现功能&#xff0c;当按下鼠标右键&#xff0c;我们的主人公根据不同的方向进行瞬间移动&#xff0c;并在身后留下一串残影&#xff0c;具体效果如下&#xff1a; 一、新建ghost场景 新建Node2D场景&#xff0c;命名为Ghost&#xff0c;存储到S…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (3 / 6)

3.8 演员几何 我们已经看到了光照属性如何控制演员的外观&#xff0c;以及相机如何结合变换矩阵将演员投影到图像平面上。剩下的是定义演员的几何形状&#xff0c;以及如何将其定位在世界坐标系中。 建模 计算机图形学研究中的一个重要主题是建模或表示物体的几何形状。…

第五十四回 高太尉大兴三路兵 呼延灼摆布连环马-AI通过构建并训练CNN网络来进行飞机识别

呼延灼举荐了百胜将韩滔和天目将彭玘做先锋。 两军对战&#xff0c;韩滔和秦明斗二十回合&#xff0c;呼延灼与林冲斗在一起&#xff0c;花荣与彭玘斗在一处&#xff0c;后彭玘与一丈青扈三娘斗在一起&#xff0c;被扈三娘抓住。 尽管梁山占优&#xff0c;宋江也没有乘胜追击&…

❤ Vue3项目搭建系统篇(二)

❤ Vue3项目搭建系统篇&#xff08;二&#xff09; 1、安装和配置 Element Plus&#xff08;完整导入&#xff09; yarn add element-plus --savemain.ts中引入&#xff1a; // 引入组件 import ElementPlus from element-plus import element-plus/dist/index.css const ap…

B端系统升级,登录页必在升级之列,不容置疑。

进行B端界面升级时&#xff0c;首先升级登录页有以下几个原因&#xff1a; 用户体验&#xff1a;登录页是用户进入系统的第一个页面&#xff0c;用户首先接触到的界面。通过升级登录页&#xff0c;可以提升用户的第一印象&#xff0c;增强用户对系统的信任感和好感度&#xff…

基于Unity3D引擎RPG游戏设计与开发

目 录 摘 要 I Abstract II 引 言 1 1.相关技术 3 1.1 Unity基础界面 3 1.2 C#脚本编写 3 1.3 Unity脚本 3 1.4 Unity物理引擎 3 1.5 UGUI 3 1.6 Unity动画系统 4 1.7 本章小结 4 2. 系统分析 5 2.1游戏内容需求分析 5 2.2游戏流程需求分析 5 2.3游戏场景需求分析 5 2.4怪物系…

GPT-4-turbo还是大家心中第一!Claude 3竞技场人类投票成绩出炉:仅居第三

Claude 3的竞技场排名终于揭晓了&#xff1a; 在仅仅3天的时间里&#xff0c;20000张投票使得排名的流量达到了前所未有的高度。 最后&#xff0c;Claude 3的"大杯"模型Opus以1233的分数赢得了胜利&#xff0c;成为了第一个能和GPT-4-Turbo匹敌的选手。 "中杯…

基于范围的for循环(C++11)和auto

auto C11中&#xff0c;标准委员会赋予了auto全新的含义即&#xff1a; auto不再是一个存储类型指示符&#xff0c;而是作为一个新的类型 指示符来指示编译器&#xff0c;auto声明的变量必须由编译器在编译时期推导而得。 int a 10;auto b a;auto c a;auto d TestAuto(…