第三百七十回

文章目录

  • 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/414707.html

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

相关文章

Unity中URP下实现水体(水面反射)

文章目录 前言一、原理1、法一&#xff1a;使用立方体纹理 CubeMap&#xff0c;作为反射纹理使用2、法二&#xff1a;使用反射探针生成环境反射图&#xff0c;所谓反射的采样纹理 二、实现水面反射1、定义和申明CubeMap2、反射向量需要什么3、计算 N ⃗ \vec{N} N 4、计算 V ⃗…

linux服务器调度数据库的存储过程

1、需要安装数据库的客户端 2、安装sqlplus 3、编写sh脚本 脚本内容如下&#xff1a; 4、设置调度任务

React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…

[机器视觉]halcon应用实例 边缘检测2

一个学习找边的实例2&#xff0c;用于练习相关算子&#xff0c;这个版本比较简单&#xff0c;少了一些对图像的处理。所以主要是用于练习思路和相关算子。只有用了&#xff0c;练了你在脑子里心才有收获。 边缘检测的步骤图解 代码 *直线找边 *清空屏幕&#xff0c;显式控制图…

express+mysql+vue,从零搭建一个商城管理系统5--用户注册

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、新建user表二、安装bcryptjs、MD5、body-parser三、修改config/db.js四、新建config/bcrypt.js五、新建models文件夹和models/user.js五、index.js引入使用body-parser六、修改routes/user.js七、启动项…

Linux------进程地址空间

目录 一、进程地址空间 二、地址空间本质 三、什么是区域划分 四、为什么要有地址空间 1.让进程以统一的视角看到内存 2.进程访问内存的安全检查 3.将进程管理与内存管理进行解耦 一、进程地址空间 在我们学习C/C的时候&#xff0c;一定经常听到数据存放在堆区、栈区、…

Linux shell:补充命令的使用

目录 一.导读 二.正文 三.结语 一.导读 上一篇介绍了脚本的简单概念以及使用&#xff0c;现在补充一些命令。 二.正文 目前处于全局目录&#xff0c;通过mkdir创建名我为day01的文件。 通过cd命令day01 切换至day01文件当中。 使用vim文本编辑器文件名&#xff08;firstdir&…

Dledger部署RocketMQ高可用集群(9节点集群)

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容规划集群准备工作节点0配置&#xff08;ip地址为192.168.80.101的机器&#xff09;节点1配置&#xff08;ip地址为192.168.80.102的机器&#xff09;节点2配置&#xff08;ip地址为192.168.80.103的机器&#xff09;在所有…

基于springboot实现鞋类商品购物商城系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现鞋类商品购物商城系统演示 摘要 时代的变化速度实在超出人类的所料&#xff0c;21世纪&#xff0c;计算机已经发展到各行各业&#xff0c;各个地区&#xff0c;它的载体媒介-计算机&#xff0c;大众称之为的电脑&#xff0c;是一种特高速的科学仪器&#xf…

05|Mysql锁分类

1. 锁分类 1.1根据性能 乐观锁 ● 版本号 ● 读多场景 ● 第二次循环需要读取到最新的数据统计 示例 while{ // 1.调用方法获取当前版本号 getCurrentBalanceAndVersion(accountId); // 2.Java运算newBalance Balance 500; updateAccountBalance(account…

LVS+Keepalived高可用群集

一、Keepalived简介 Keepalived 软件起初是专为LVS负载均衡软件设计的&#xff0c;用来管理并监控LVS集群系统中各个服务节点的状态&#xff0c;后来又加入了可以实现高可用的VRRP功能。因此&#xff0c;Keepalived除了能够管理LVS软件外&#xff0c;还可以作为其他服务&…

低代码平台与MES:智能制造的新篇章

随着工业4.0和智能制造的兴起&#xff0c;企业对于生产过程的数字化、智能化需求日益迫切。传统的MES系统实施周期长、成本高&#xff0c;成为许多企业数字化转型的瓶颈。而低代码开发平台的出现为这一问题提供了新的解决思路。 一、万界星空科技低代码平台的优势&#xff1a; …

【项目管理】CMMI-质量保证过程

质量保证过程&#xff08;PQA)&#xff1a;通过质量保证活动&#xff0c;确保过程与产品满足过程、规程及相应的要求&#xff0c;确保问题得到关注与解决&#xff0c;使工作人员和管理者能够客观地了解过程与相关的工作产品。QA工程师应实施质量保证策划活动&#xff0c;客观地…

Leetcode—64. 最小路径和【中等】

2024每日刷题&#xff08;116&#xff09; Leetcode—64. 最小路径和 实现代码 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m 1, vector<int&g…

代理ip并发是不是越大越好?为何对代理IP做出并发请求限制?

随着网络技术的不断发展&#xff0c;代理IP已成为许多人在上网时保护隐私和突破地域限制的重要手段。然而&#xff0c;在选择和使用代理IP时&#xff0c;有一个问题常常被人们提及&#xff1a;代理IP的并发数是不是越大越好&#xff1f;为何对代理IP做出并发请求限制&#xff1…

C++ 高频考点

1. C/C内存有哪几种类型&#xff1f; C中&#xff0c;内存分为5个区&#xff1a;堆(malloc)、栈(如局部变量、函数参数)、程序代码区&#xff08;存放二进制代码&#xff09;、全局/静态存储区&#xff08;全局变量、static变量&#xff09;和常量存储区&#xff08;常量&…

言语理解与表达-郭熙-01

1、听课小贴上 2、 言语理解与表达-题型分类&#xff08;章就是类&#xff09; 国考&#xff1a;40道题 时间建议&#xff1a;30分钟 目标正确率&#xff1a;80% 3、课程安排 4、第一章-片段阅读 看问题---> 带着问题读文段----> 确定选项 4.1 中心理解题 关联词&…

QT摄像头采集

主界面为显示框&#xff0c;两个下拉框&#xff0c;一个是所有相机&#xff0c;一个是相机支持的分辨率 系统根据UI界面自动生成的部分不再描述&#xff0c;以下为其他部分源码 widget.h #include <QWidget> #include <QMouseEvent> class QCamera; class QCamer…

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …

Sentinel实战(待完善)

目录 服务雪崩 什么是服务雪崩 服务不可用原因 解决方案 技术选型对比 Sentinel 介绍 优点 核心概念 资源 规则 代码实战 API实现 SentinelResource注解埋点实现 服务雪崩 什么是服务雪崩 在服务调用链路中, 服务提供者不可用, 导致服务调用者不可用, 间接让上上游…