当前位置: 首页 > news >正文

Flutter DateTime 常用处理

今天介绍一下 DateTime 的一些常用功能,对其进行一个整理。

最近在开发过程中好多时候都会使用到时间方面的方法,心想还是统一处理一下,封装一个管理类,这个类可以满足我们开发过程中常用的时间方法。

今天正好整理了一下,写一篇博客,贴出来分享一下,如果大家有需要可直接复制粘贴即可。

DateTime 是我们常用的一个功能,在和服务器打交道时,将时间戳转成时间展示,将时间转成时间戳传给服务器等方法。

在介绍 DateTime 功能时,我需要介绍一下 date_format 插件。

这个 date_format 是一个时间格式处理工具,是我们在开发过程中时间方面常用的插件,下面是 插件网址介绍

date_format 时间格式插件icon-default.png?t=N7T8https://pub.dev/packages/date_format

那如何使用呢?代码如下:

我们要使用 date_format  创建制定的时间格式,例如:YYYY-MM-DD HH:MM:SS

实现代码如下:


[yyyy, '-', mm, '-', dd, " ", HH, ":", mm, ":", ss]
当然在使用的时候我们需要先将 date_format 引用一下
import 'package:date_format/date_format.dart';
时间转化的方法如下:
String formatDate(DateTime date, List<String> formats,{DateLocale locale = const EnglishDateLocale()}) 

其中 date 就是我们的时间,formats 就是上述面的时间格格式数组。

介绍到这就已经满足我们的功能使用了,如果想看更多方法,大家可以去上面的插件网站看一下详细介绍。

下面就是正文开始

1、date_format 引入
date_format: ^2.0.7

然后我们 pub get 一下即可。

2、代码实现

代码实现相对非常简单,这里我就不一一介绍了,我在代码里的注释已经写的很详细了,大家如果有不理解的地方,可以在评论区或者私信找我即可。废话不多说直接上代码。

我们需要创建一个类 DateUtil.dart ,当然名字大家可以随便写,这个无所谓。下面是完整代码。

import 'package:date_format/date_format.dart';class DateUtil {/// 获取当前时间static DateTime currentDateTime = DateTime.now();/// 获取当前时间戳/// millisecondsSinceEpoch 秒/// microsecondsSinceEpoch 毫秒static int get currentTimeStamp => currentDateTime.millisecondsSinceEpoch;/// 获取某个时间的时间戳/// dateTime 时间static int getTimeStamp(DateTime dateTime) => dateTime.millisecondsSinceEpoch;/// 将某一个时间戳转时间/// timeStamp 时间戳static DateTime getTimeStampToDateTime(int timeStamp) =>DateTime.fromMicrosecondsSinceEpoch(timeStamp);/// 判断某个年份是否是闰年/// year 年static bool isLeapYear(int year) =>(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);/// 获取当前某个时间是星期几,默认是当前时间/// dateTime 时间static int getWeekByDate({DateTime? dateTime}) =>(dateTime ?? currentDateTime).weekday;/// 获取某个时间的下一天,Duration(days: 1) 1 可以变成参数,想传多长时间可自定义/// dateTime 时间static DateTime getNextDay({DateTime? dateTime}) =>(dateTime ?? currentDateTime).add(const Duration(days: 1));/// 获取某个时间的上一天,Duration(days: 1) 1 可以变成参数,想传多长时间可自定义/// dateTime 时间static DateTime getLastDay({DateTime? dateTime}) =>(dateTime ?? currentDateTime).subtract(const Duration(days: 1));/// 获取某年某个月份有多少天/// month 月份/// year 是哪年,不传默认当前年static int getDaysAMonth(int month, {int? year}) =>month == 4 || month == 6 || month == 9 || month == 11? 30: month == 2? (isLeapYear(year ?? currentDateTime.year) ? 29 : 28): 31;/// 获取某个时间字符串展示 例如:2024-01-01 00:01:01/// dateType 时间格式类型/// dateTime 某个时间,不传默认 当前时间static String? getDateFormatTime({DateType? dateType, DateTime? dateTime}) =>formatDate(dateTime ?? currentDateTime, (dateType ?? DateType.YYYYMMDD).format);/// 将某个时间转成字符串/// dateTime 某个时间,不传默认 当前时间static String getTimeStr({DateTime? dateTime}) =>(dateTime ?? currentDateTime).toString();/// 将某个字符串转成时间/// timeString 某个时间字符串static DateTime getDateByStr(String timeString) => DateTime.parse(timeString);/// 比较两个时间大小static TimeSort timeComparison(DateTime time1, DateTime time2) =>time1.isBefore(time2)? TimeSort.descending: time1.isAfter(time2)? TimeSort.ascending: TimeSort.same;/// 获取两个时间相差多久/// ⚠️注意:Duration 是用来表示时间跨度(差值)的类,例如27天,4小时,12分钟和3秒。/// ⚠️注意:Duration 提供了很多时间单位转换的方法以及时间加减计算的方法,使用起来非常方便。static Duration getDifferenceTime(DateTime time1, DateTime time2) =>time1.difference(time2);
}enum DateType {YYYY([yyyy]),YYYYMM([yyyy, '-', mm]),YYYYMMDD([yyyy, '-', mm, '-', dd]),YYYYMMDDHH([yyyy, '-', mm, '-', dd, " ", HH]),YYYYMMDDHHMM([yyyy, '-', mm, '-', dd, " ", HH, ":", mm]),YYYYMMDDHHMMSS([yyyy, '-', mm, '-', dd, " ", HH, ":", mm, ":", ss]);final List<String> format;const DateType(this.format);
}enum TimeSort {ascending("升序"),descending("降序"),same("相同");final String title;const TimeSort(this.title);
}

注意⚠️:代码中的 DateType 是负责设置展示时间展示样式的枚举,TimeSort 是时间比较的 枚举。

以上就是时间管理的常用到的方法,可以基本满足大家的使用,如果不满足,大家可以在我这个基础上扩一些方法就行了。

到此就完成了DateTime一些常用的方法介绍,大家如果有一位可以打在评论区或者私信即可。

相关文章:

Flutter DateTime 常用处理

今天介绍一下 DateTime 的一些常用功能&#xff0c;对其进行一个整理。 最近在开发过程中好多时候都会使用到时间方面的方法&#xff0c;心想还是统一处理一下&#xff0c;封装一个管理类&#xff0c;这个类可以满足我们开发过程中常用的时间方法。 今天正好整理了一下&#…...

【uniapp】APP打包上架应用商-注意事项

初雪云-uniapp启动图自定义生成&#xff08;支持一键生成storyboard&#xff09; HBuilderX需要的自定义storyboard文件格式为 " zip压缩包 " 一、“Android” — 设置targetSdkVersion 小米、OPPO、vivo、华为等主流应用商店&#xff0c;将于2023年12月采用 targetS…...

【算法题】43. 字符串相乘

题目 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", num2 "3…...

CH341 SPI方式烧录BK7231U

CH341是一个USB总线的转接芯片&#xff0c;通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 BK7231U Wi-Fi SOC芯片&#xff0c;内嵌处理器。1. 符合802.11b/g/n 1x1协议 2. 17dBm 输出功率3. 支持20/40 MHz带宽和STBC 4. 支持Wi-Fi STA、AP、…...

sd-webui-EasyPhoto win 安装笔记

目录 安装教程: 插件介绍 ControlNet 1.1 Tile: launch.py问题 依赖库 webui安装问题...

gradient_checkpointing

点评:本质是减少内存消耗的一种方式,以时间或者计算换内存 gradient_checkpointing(梯度检查点)是一种用于减少深度学习模型中内存消耗的技术。在训练深度神经网络时,反向传播算法需要在前向传播和反向传播之间存储中间计算结果,以便计算梯度并更新模型参数。这些中间结…...

回溯算法part05 算法

回溯算法part05 算法 今日任务 491.递增子序列46.全排列47.全排列 II 1.LeetCode 491.递增子序列 https://leetcode.cn/problems/non-decreasing-subsequences/description/ class Solution {List<List<Integer>> resultnew ArrayList<>();List<Inte…...

阿里云系统盘测评ESSD、SSD和高效云盘IOPS、吞吐量性能参数表

阿里云服务器系统盘或数据盘支持多种云盘类型&#xff0c;如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等&#xff0c;阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…...

RK3568平台开发系列讲解(Linux系统篇)Linux 内核打印

🚀返回总目录 文章目录 一、方法一:dmseg 命令二、方法二:查看 kmsg 文件三、方法三:调整内核打印等级一、方法一:dmseg 命令 在终端使用 dmseg 命令可以获取内核打印信息,该命令的具体使用方法如下所示: 首先在串口终端使用 “dmseg”命令,可以看见相应的内核打印信息…...

迁移学习的最新进展和挑战

随着深度学习和人工智能技术的飞速发展&#xff0c;迁移学习作为一种有效的机器学习方法&#xff0c;已经在各个领域取得了显著的成果。迁移学习是指将一个领域&#xff08;源领域&#xff09;的知识应用到另一个领域&#xff08;目标领域&#xff09;&#xff0c;以提高目标领…...

Python基础(二十二、自定义模块和包)

文章目录 一、自定义模块1.如何自定义模块并导入?2.__main__变量的功能3.注意事项 二、自定义包1.什么是Python的包?2.__init __.py文件的作用?3.__all__变量的作用?4.示例 三、自定义模块和自定义包的好处 一、自定义模块 1.如何自定义模块并导入? 在Python代码文件中正…...

C#-数组

数组 (array) 是一种包含若干变量的数据结构&#xff0c;这些变量都可以通过计算索引进行访问。数组中包含的变量&#xff08;又称数组的元素&#xff09;具有相同的类型&#xff0c;该类型称为数组的元素类型。 数组类型为引用类型&#xff0c;因此数组变量的声明只是为数组实…...

机器学习周刊第二期:300个机器学习应用案例集

大家好 前文&#xff1a;机器学习项目精选 第一期 继续分享我最近看过并觉得非常硬核的资源&#xff0c;包括Python、机器学习、深度学习、大模型等等。 1、Python编程挑战 地址&#xff1a;https://github.com/Asabeneh/30-Days-Of-Python 30天Python编程挑战是一个逐步学…...

【华为OD机试真题2023CD卷 JAVAJS】中文分词模拟器

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 中文分词模拟器 知识点图字符串 时间限制:5s 空间限制:256MB 限定语言:不限 题目描述: 给定一个连续不包含空格字符串,该字符串仅包含英文小写字母及英文文标点符号(逗号、分号、句号),同时给定词库,对该字符串进…...

基于YOLOv8-pose的画笔关键点(bic_markers)检测

💡💡💡本文解决什么问题:教会你如何用自己的数据集训练Yolov8-pose关键点检测 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.net/m0_63774211/category_12398833.html ✨✨✨手把手教你从数据标记到生成适合Yolov8-pose的yolo数据集;...

【实用技巧】Windows 电脑向iPhone或iPad传输视频方法1:无线传输

一、内容简介 本文介绍如何使用 Windows 电脑向 iPhone 或 iPad 传输视频&#xff0c;以 iPhone 为例&#xff0c;iPad的操作方法类似&#xff0c;本文不作赘述。 二、所需原材料 Windows 电脑&#xff08;桌面或其它文件夹中存有要导入的视频&#xff09;、iPhone 14。 待…...

爬虫实战 - 微博评论数据可视化

简介&#xff1a; 我们都知道在数据比较少的情况下&#xff0c;我们是可以很轻易的获取到数据中的信息。但是当数据比较庞大的时候呢&#xff0c;我们就很难看出来了。尤其是面对现如今数以万计的数据&#xff0c;就更了。 不过好在我们可以通过计算机来帮我们进行分析&#…...

python装饰器嵌套基础

1 python装饰器嵌套基础 python支持装饰器嵌套&#xff0c;即多个装饰器装饰同一个函数或方法。 1.1 嵌套执行顺序 用法 a_deco b_deco c_deco def test_nest_deco():pass描述 a_deco、b_deco、c_deco分别占一行&#xff0c;编写在同一个函数或方法的def语句上方。 从def…...

C语言之三子棋小游戏的应用

文章目录 前言一、前期准备模块化设计 二、框架搭建三、游戏实现打印棋盘代码优化玩家下棋电脑下棋判断输赢 四、结束 前言 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#…...

优雅处理并发:Java CompletableFuture最佳实践

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天&#xff0c;小黑要和大家聊聊CompletableFuture&#xff0c;这个Java 8引入的强大工具。 在Java传统的Future模式里&#xff0c;咱们都知道&#xff0c;一旦开始了一个异步操作&#xff0c;就只能等它结束…...

熟悉HDFS常用操作

1. 利用Hadoop提供的Shell命令完成下列任务 (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件。 #检查文件是否存在./bin/hdfs dfs -test -e text.txt echo $? #结果是1 代表已存在 #根据结果判断出文件已存…...

Adobe XD是什么?探索这款创新的用户体验设计工具

Adobexd是一种基于矢量的设计工具&#xff0c;主要用于设计移动和Web应用程序的用户界面(UI)。与Photoshop或ilustrator等其他Adobe产品相比&#xff0c;它相当轻。对于对快速设计和原型迭代感兴趣的界面设计师来说&#xff0c;轻量级并不是一件坏事。 在早期&#xff0c;Adob…...

java常用应用程序编程接口(API)——ArrayList概述及使用案例

前言&#xff1a; 学习了ArrayList&#xff0c;整理下ArrayList的常用功能及基本案例。打好基础&#xff0c;daydayup&#xff01; 如果需要了解API是什么并如何使用&#xff0c;可以看这篇文章。 java常用应用程序编程接口&#xff08;API&#xff09;——String概述及使用案…...

2024年了,Layui再战三年有问题不?

v2.9.3 2023-12-31 2023 收官。 form 优化 input 组件圆角时后缀存在方框的问题 #1467 bxjt123优化 select 搜索面板打开逻辑&#xff0c;以适配文字直接粘贴触发搜索的情况 #1498 Sight-wcgtable 修复非常规列设置 field 表头选项时&#xff0c;导出 excel 出现合计行错位的…...

消息队列-RocketMQ-概览与搭建

RocketMQ 领域模型 RockeMQ整体结构预览 RocketMQ 中的一些概念 Topic&#xff1a;主题&#xff0c;可以理解为类别、分类的概念 MessageQueue&#xff1a;消息队列&#xff0c;存储数据的一个容器&#xff08;队列索引数据&#xff09;&#xff0c;默认每个 Topic 下有 4 个队…...

Vue3技术解析(小册子)

随着 Vue 3 正式版本的发布&#xff0c;未来 Vue 3 将会成为前端的主流框架&#xff0c;这个毋庸置疑。Vue 3 在使用方面会兼容部分 Vue 2.x 的特性&#xff0c;比如 options API。 所以&#xff0c;究竟是要先学习 Vue 2 打好基础&#xff0c;还是直接学习 Vue 3 呢&#xff…...

即将消失的五种编程语言?

1. Ruby Ruby 在 1999 年发布后立即受到程序员们的热捧&#xff0c;它能够快速构建应用程序的特性给程序员留下了非常深刻的印象。紧随其后&#xff0c;备受欢迎的 Ruby on Rails 框架于 2004 年发布&#xff0c;由于 Ruby 和 Rails 这两个名称在当时几乎成为了同义词&#xf…...

c++学习:STL库(框架)+字符串模板类string+vector容器+list链表

目录 stl库 常用组件包括 字符串库 字符串模板类string 头文件 最常用的字符串模板类 字符串类型 模板原型 模板的成员数据类型 模板成员函数 有些函数会有重载&#xff0c;可以去下面网址查看std::basic_string - cppreference.comhttps://zh.cppreference.com/w/cp…...

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷④

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷4 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷4 模块一 …...

使用Scikit Learn 进行识别手写数字

使用Scikit Learn 进行识别手写数字 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f…...

软件工程考研率为何低/抖音seo关键词优化

今天我们在数学课上学习了用天平找次品。 &#xff08;以下几张图片来自课本库网&#xff09; 哈哈&#xff0c;根据道理我又能写程序了。 //Author:PanDaoxi #include <iostream> using namespace std; int x,y,z; int find(int n){if(x2||y2){cout<<1<<…...

朝阳网站搭建公司/设计公司企业网站

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称&#xff1a;设计一个工资类(Salary)--完成各个功能 * 作 者&#xff1a; 雷恒鑫 * 完成日期&#xff1a; 2012年03 月13日 * 版 本 号&…...

wordpress主题手机主题/百度文库个人登录

为什么 redis 单线程却能支撑高并发? 纯内存操作 核心是基于非阻塞的 IO 多路复用机制 单线程反而避免了多线程的频繁上下文切换问题 一、Redis的高并发和快速原因 1.redis是基于内存的&#xff0c;内存的读写速度非常快(纯内存); 数据存在内存中&#xff0c;数据结构用H…...

网站建设法语/2022年新闻大事

目录 0. 相关文章链接 1. ODS层 2. DIM层和DWD层 2.1. 选择业务过程 2.2. 声明粒度 2.3. 确定维度 2.4. 确定事实 3. DWS层与DWT层 4. ADS层 5. 总结 0. 相关文章链接 离线数仓文章汇总 1. ODS层 在ods层注意如下3点即可&#xff1a; 保持数据原貌不做任何修改&a…...

用struts2框架做的网站/站长工具在线免费

白酒价格表和图片大全 白酒知识普及 白酒价格查询&#xff0c;最新价格多少钱一瓶&#xff1f;请您先点击上方蓝色字体“百姓事吧”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到最新白酒价格表图片及口感参数包装、白酒多少钱一瓶、白酒真假评测等相关文章…...

去掉wordpress页面的分类归档/页面优化

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/suotree/blog/28029...