news 2026/6/11 1:07:16

Flutter---时间核心类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 2:14:29

西门子PLC实现冷热水恒压供水系统开发之旅

西门子Siemens PLc程序&#xff0c;TiA博途V15.1 V16 V17版冷热水恒压供水系统&#xff0c;变频器控制&#xff0c;模拟量输入和输出处理&#xff0c;温度控制&#xff0c;流量计算控制&#xff0c;配方控制&#xff0c;LAd和ScL语言 在自动化控制领域&#xff0c;西门子的PLC配…

作者头像 李华
网站建设 2026/6/10 12:36:04

直流电机双闭环调速系统这玩意儿,搞过电机控制的都知道它有多实用。今天咱们直接上手拆解一个已经调好的Simulink模型,手把手看看怎么让电机转速稳如老狗

直流电机双闭环调速系统仿真模型 转速电流双闭环调速系统Matlab/Simulink仿真模型。 内外环均采用PI调节器&#xff0c;本模型具体直流电机模块、三相电源、同步6脉冲触发器、双闭环、负载、示波器模块搭建。 所有参数都已经调试好了&#xff0c;仿真波形完美&#xff0c;可以直…

作者头像 李华
网站建设 2026/6/10 12:29:47

C#上位机源代码,采集西门子200smart温度数据并显示波形曲线,温度到达上限值或下限值进行...

C#上位机源代码&#xff0c;采集西门子200smart温度数据并显示波形曲线&#xff0c;温度到达上限值或下限值进行报警提示。 采集的数据每天生成一个excel报表&#xff0c;全套源代码系统概述 本系统是一个基于C#开发的西门子PLC温度数据采集与监控平台&#xff0c;专门用于实时…

作者头像 李华
网站建设 2026/6/10 12:31:39

探索双三相电机(六相电机模型)的控制与 Matlab Simulink 仿真

双三相电机(六相电机模型) 双dq和vsd Matlab simulink仿真模型电机控制 电机控制在电机控制领域&#xff0c;双三相电机&#xff08;六相电机模型&#xff09;因其独特的优势&#xff0c;逐渐受到广泛关注。相较于传统三相电机&#xff0c;双三相电机在功率密度、容错能力等方…

作者头像 李华