深色模式
Dart 实践
字符串格式化
Dart 标准库连字符串格式化的方法也没有,果然是个残缺的语言。
可以使用pub.dev上的sprintf库,该库提供类似C语言的格式化方法。
Install
sh
flutter pub add sprintf
Example
dart
print(sprintf("%04i", [-42]));
时间与日期操作
DateTime 构造方法
DateTime()
:以当前时区构造时间对象,传入年月日时分秒等参数DateTime.utc()
:以UTC时区构造时间对象,传入年月日时分秒等参数DateTime.now()
:以当前时区、当前时刻构造时间对象DateTime.fromMillisecondsSinceEpoch()
:从毫秒时间戳构造时间对象,传入时间戳DateTime.fromMicrosecondsSinceEpoch()
:从微秒时间戳构造时间对象,传入时间戳
读取时间
dart
var dateTime = DateTime.now();
dateTime.millisecondsSinceEpoch; // 毫秒时间戳
dateTime.microsecondsSinceEpoch; // 微秒时间戳
dateTime.year; //年
dateTime.month; //月(1-12)
dateTime.day; //日(1-31)
dateTime.weekday; //星期(1-6)
dateTime.hour; //小时(0-59)
dateTime.minute; //分钟(0-59)
dateTime.second; //秒(0-59)
dateTime.millisecond; //毫秒(0-999)
dateTime.microsecond; //微秒(0-999)
解析时间
通过静态方法:DateTime.parse()
来解析格式化时间字符串,字串符格式举例:
dart
"2012-02-27"
"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456789z"
"2012-02-27 13:27:00,123456789z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
"+20120227"
"2012-02-27T14Z"
"2012-02-27T14+00:00"
"-123450101 00:00:00 Z": in the year -12345.
"2002-02-27T14:00:00-0500": Same as "2002-02-27T19:00:00Z"
取时间字符串
toString()
:把一个DateTime
转换成时间字符串toIso8601String()
:toLocal()
:在本地时区返回此DateTime
值toUtc()
:在UTC时区中返回此DateTime
值
改变时间对象
add()
:通过增加时间来改变原始的DateTime
subtract()
:通过减去时间来改变原始的DateTime
比较时间对象
isBefore()
isAfter()
isAtSameMomentAs()
compareTo()
时间与日期格式化
使用date_format包:
Install
sh
flutter pub add date_format
Example
dart
var date = DateTime.now();
var str = formatDate(date, ["yyyy", "mm", "dd", "hh", "nn", "ss"]);