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

Flutter---时间核心类

DateTime - 基础时间类

// 创建 DateTime 对象 DateTime now = DateTime.now(); // 当前时间 DateTime specific = DateTime(2024, 1, 15); // 指定日期 (年,月,日) DateTime detailed = DateTime(2024, 1, 15, 10, 30); // 指定日期时间 (年,月,日,时,分) DateTime utc = DateTime.utc(2024, 1, 15); // UTC 时间 DateTime parsed = DateTime.parse("2024-01-15 10:30:45"); // 解析字符串 // 常用属性 print(now.year); // 年: 2024 print(now.month); // 月: 1-12 print(now.day); // 日: 1-31 print(now.hour); // 时: 0-23 print(now.minute); // 分: 0-59 print(now.second); // 秒: 0-59 print(now.millisecond);// 毫秒 print(now.microsecond);// 微秒 print(now.weekday); // 星期几: 1(星期一)-7(星期日) print(now.millisecondsSinceEpoch); // 时间戳(毫秒) print(now.microsecondsSinceEpoch); // 时间戳(微秒) // 时区相关 print(now.timeZoneName); // 时区名: "CST" print(now.timeZoneOffset); // 时区偏移: 8:00:00.000000 print(now.isUtc); // 是否是UTC时间

Duration - 时间段类

// 创建 Duration Duration duration1 = Duration(days: 1, hours: 2, minutes: 30); Duration duration2 = Duration(seconds: 90); // 1分30秒 Duration duration3 = Duration(milliseconds: 1500); // 1.5秒 // 常用属性 Duration d = Duration(hours: 2, minutes: 30); print(d.inDays); // 0 (不足1天) print(d.inHours); // 2 print(d.inMinutes); // 150 print(d.inSeconds); // 9000 print(d.inMilliseconds);// 9000000 // 运算 Duration sum = duration1 + duration2; Duration diff = duration1 - duration2; Duration multiplied = duration1 * 2; Duration divided = duration1 ~/ 2; bool isGreater = duration1 > duration2;

基本时间格式化

import 'package:intl/intl.dart'; DateTime now = DateTime.now(); //.format() 用于将DateTime对象格式化为指定格式的字符串 // 日期格式化 DateFormat dateFormat = DateFormat("yyyy-MM-dd"); String formattedDate = dateFormat.format(now); // "2024-01-15" // 时间格式化 DateFormat timeFormat = DateFormat("HH:mm:ss"); String formattedTime = timeFormat.format(now); // "10:30:45" // 日期时间格式化 DateFormat dateTimeFormat = DateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = dateTimeFormat.format(now); // "2024-01-15 10:30:45" // 本地化格式化 DateFormat localeFormat = DateFormat.yMMMMd('zh_CN'); String localized = localeFormat.format(now); // "2024年1月15日"

常用格式模板

// 日期部分 yyyy // 4位年份: 2024 yy // 2位年份: 24 MMMM // 完整月份: January MMM // 缩写月份: Jan MM // 2位月份: 01 M // 月份: 1 dd // 2位日期: 15 d // 日期: 15 // 时间部分 HH // 24小时制: 14 hh // 12小时制: 02 mm // 分钟: 30 ss // 秒: 45 a // AM/PM: AM // 星期 EEEE // 完整星期: Monday EEE // 缩写星期: Mon // 组合示例 DateFormat("yyyy年MM月dd日 EEEE"); // 2024年1月15日 星期一 DateFormat("MM/dd/yyyy hh:mm a"); // 01/15/2024 02:30 PM DateFormat("yyyy-MM-dd'T'HH:mm:ss");// 2024-01-15T14:30:45

预定于格式

// 日期格式 DateFormat.yMd(); // 2024/1/15 DateFormat.yMMMMd(); // January 15, 2024 DateFormat.yMMMMEEEEd(); // Monday, January 15, 2024 DateFormat.yMMMd(); // Jan 15, 2024 // 时间格式 DateFormat.Hm(); // 14:30 DateFormat.Hms(); // 14:30:45 DateFormat.jm(); // 2:30 PM DateFormat.jms(); // 2:30:45 PM // 本地化 DateFormat.yMMMMd('zh_CN'); // 2024年1月15日 DateFormat.yMMMMd('ja_JP'); // 2024年1月15日 DateFormat.yMMMMd('de_DE'); // 15. Januar 2024

DateTime运算

DateTime now = DateTime.now(); // 增加时间-add DateTime tomorrow = now.add(Duration(days: 1)); DateTime nextHour = now.add(Duration(hours: 1)); DateTime nextWeek = now.add(Duration(days: 7)); // 减少时间-subtract DateTime yesterday = now.subtract(Duration(days: 1)); DateTime lastHour = now.subtract(Duration(hours: 1)); // 计算差异-difference DateTime date1 = DateTime(2024, 1, 1); DateTime date2 = DateTime(2024, 1, 15); Duration difference = date2.difference(date1); print(difference.inDays); // 14天

时间比较

DateTime date1 = DateTime(2024, 1, 10); DateTime date2 = DateTime(2024, 1, 15); // 比较方法 print(date1.isBefore(date2)); // true print(date1.isAfter(date2)); // false print(date1.isAtSameMomentAs(date2)); // false // 检查两个 DateTime 是否表示同一时刻 print(date1.compareTo(date2)); // -1 (小于) //compareTo用于比较两个日期时间的先后顺序,返回一个整数表示比较结果,(正数或负数或0) // 排序-sort List<DateTime> dates = [date2, date1]; dates.sort(); // 自动按时间排序 // 判断是否在同一天 bool isSameDay(DateTime a, DateTime b) { return a.year == b.year && a.month == b.month && a.day == b.day; }
http://www.jsqmd.com/news/245063/

相关文章:

  • C#源码 上位机 SECS协议,里面包含各种进制转换,用于半导体行业,程序全源码
  • aa---(6)
  • ‌别再用Jenkins了!GitLab CI+AI测试,才是中大型企业的标配‌
  • 最优控制和轨迹规划学习笔记 包含多个实际案例 倒立摆上翻控制 满足车辆运动学约束的路径规划 离...
  • 狂奔不死机:电鱼智能 RK3588 B2B 版应对足式机器人高频振动挑战
  • Labview Modbus - Tcp:PLC通讯的万能利器
  • ‌测试覆盖率85%?真正高质团队都在看“AI预测风险热力图”‌
  • 西门子S7-200PLC与MCGS组态联动下的污水处理智能控制设计
  • 中小学午休课桌椅新国标之外的“安全风险”:校金刚的产品设计更有优势
  • 含可再生能源的配电网最佳空调负荷优化控制Matlab代码
  • 防火墙双机热备01(主备模式)
  • 基于CarSim和Matlab的ABS模糊控制仿真研究
  • 电力电子工程师简历优化指南:从“简历泥潭”到入职邀约,只需三招
  • 风光及负荷多场景随机生成与缩减Matlab代码
  • 直流微电网储能单元功率分配/soc均衡 有参考文献,采用1kw光伏电池代替直流微电网,两台1k...
  • 刚拿到注塑厂报价单就懵?塑料粒子价格波动像坐过山车?今天直接甩你一套车间老师傅用了十年的硬核工具包,手把手教你拆解注塑成本(文末有彩蛋)
  • 探索四旋翼PID控制仿真模型:Matlab实现与应用
  • 三维的组合导航。 ins和卫星的组合导航算法,基于卡尔曼滤波和eskf滤波的都有。 MATLAB源码
  • 8款AI论文工具一站式操作指南:免费写开题报告超简单
  • Matlab ‖ 峰谷电价引导下电动汽车充电负荷优化-基于NSGA-II算法 关键词
  • 车辆轨迹自适应预瞄跟踪控制和自适应p反馈联合控制,自适应预苗模型和基于模糊p控制均在simul...
  • 基于Matlab和MatPower的配电网光伏储能双层优化配置模型(选址定容)及其在IEEE3...
  • 光伏储能+三相并离网逆变切换运行模型【含笔记】 包含Boost、Buck-boost双向DCD...
  • select函数,设置超时等待的时间
  • 时空数据挖掘:位置大数据分析实战
  • 直流电机双闭环调速系统这玩意儿,搞过电机控制的都知道它有多实用。今天咱们直接上手拆解一个已经调好的Simulink模型,手把手看看怎么让电机转速稳如老狗
  • PDF阅读器推荐
  • 基于阶梯碳交易成本的综合能源系统低碳优化调度研究:多元储能与IES联合调度策略实现(Matla...
  • JS正则表达式实战:核心语法解析
  • 自动驾驶不同工况避障模型(perscan、simulink、carsim联仿),能够避开预设的...