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

flutter 使用正则表达式进行日期、时间格式化

因为日期、时间格式化在项目里面用得比较多,所以一般封装成一个方法,放在utils文件夹了,所以我先建了一个utils文件夹,然后新建一个文件叫做tools.dart。

class Tools {static formatTime(timeStamp, {format = '{y}-{m}-{d} {h}:{i}:{s}'}) {if(timeStamp == null) return null;if ('$timeStamp'.length == 10) {timeStamp *= 1000;}DateTime date = DateTime.fromMillisecondsSinceEpoch(timeStamp);var formatObj = {'y': date.year,'m': date.month,'d': date.day,'h': date.hour,'i': date.minute,'s': date.second,'a': date.weekday,};RegExp exp = RegExp("{(y|m|d|h|i|s|a)+}");var timeStr = format.replaceAllMapped(exp, (Match match) {var result = match.group(0); // {m}var key = match.group(1); // mvar value = formatObj[key];if (key == 'a') return ['一', '二', '三', '四', '五', '六', '日'][value! - 1];var s = '$value';if (result!.isNotEmpty && value! < 10) {s = '0$value';}return s;});return timeStr;}static getWeek(timeStamp) {if(timeStamp == null) return null;String week = '';if ('$timeStamp'.length == 10) {timeStamp *= 1000;}DateTime date = DateTime.fromMillisecondsSinceEpoch(timeStamp);if (date.weekday == 0) week = "星期日";if (date.weekday == 1) week = "星期一";if (date.weekday == 2) week = "星期二";if (date.weekday == 3) week = "星期三";if (date.weekday == 4) week = "星期四";if (date.weekday == 5) week = "星期五";if (date.weekday == 6) week = "星期六";return week;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ETL工程师角度下的SQL优化
  • 【C++11】解锁C++11新纪元:深入探索Lambda表达式的奥秘
  • Unity强化工程 之 音效
  • SAP-PLM创建物料主数据接口
  • JavaScript和vue实现左右两栏,中间拖动按钮可以拖动左右两边的宽度
  • 全排列的 Java 实现
  • Springcloud-Nacos
  • OpenStack入门体验
  • 掩码、反掩码、通配符的区别和计算方式
  • 使用s3cmd 2.x 与 Cyberduck 管理在 DigitalOcean Spaces 对象存储中的数据
  • 全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类
  • 缓存策略自定义:Laravel应用性能优化秘籍
  • 虚拟机(CentOS7)安装jenkins
  • ubuntu安装nginx以及php的部署
  • STL—vector—模拟实现【深度理解vector】【模拟实现vector基本接口】
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • create-react-app项目添加less配置
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaScript HTML DOM
  • October CMS - 快速入门 9 Images And Galleries
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • React系列之 Redux 架构模式
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • VuePress 静态网站生成
  • 阿里云前端周刊 - 第 26 期
  • 大快搜索数据爬虫技术实例安装教学篇
  • 将 Measurements 和 Units 应用到物理学
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端性能优化——回流与重绘
  • 如何利用MongoDB打造TOP榜小程序
  • 如何使用 JavaScript 解析 URL
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 世界上最简单的无等待算法(getAndIncrement)
  • 双管齐下,VMware的容器新战略
  • 算法之不定期更新(一)(2018-04-12)
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 用Canvas画一棵二叉树
  • 走向全栈之MongoDB的使用
  • #define
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (二)fiber的基本认识
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)linux 命令大全
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net core 6 集成和使用 mongodb
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • .NET单元测试