具备 Day.js 一样 API 的时间处理库.
This project is a starting point for a Dart package, a library module containing code that can be shared easily across multiple Flutter or Dart projects.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
在项目下运行此命令
dart pub add daydart
# or
flutter pub add daydart
DayDart
对象是不可变的,所有的调用都将返回一个新的 DayDart
对象。
在 DayDart
中传入支持的格式。
不带参数调用 DayDart()将返回一个新的DayDart
对象,其中包含当前日期和时间
DayDart now = DayDart()
以 ISO 8601
格式解析给定字符串并返回DayDart
对象实例。
DayDart('2018-04-04')
传入的一个 DateTime 对象。
DayDart(DateTime.now());
通过一个毫秒的整数值来创建DayDart
DayDart(1623484401193);
所有 DayDart 对象是不可变的。如果需要的话,DayDart#clone 仍然可以创建当前对象的一个克隆。
DayDart a = DayDart()
DayDart b = a.clone()
在DayDart
对象上调用 DayDart()也会克隆它。
DayDart a = DayDart()
DayDart b = DayDart(a)
返回一个布尔值,指示DayDart
对象是否包含有效日期。
DayDart().isValid()
获取或设置年份。
DayDart().year();
DayDart().year(2000);
获取或设置月份。
接受 1 到 12 的数字。如果超过这个范围,将一直持续到年底。
DayDart().month();
DayDart().month(1);
获取或设置季度。
DayDart('2010-04-01').quarter() // 2
DayDart('2010-04-01').quarter(2)
获取或设置月份的日期。
接受从 1 到 31 的数字。如果超过这个范围,将持续到日。
DayDart().day()
DayDart().day(1)
获取月份总天数
DayDart().days()
获取日期到年初总天数
DayDart().dayOfYear()
获取日期到年初总星期数
DayDart().weeks()
获取星期
DayDart().week()
获取或设置小时。
接受 0 到 59 的数字。如果超过这个范围,将持续到日。
DayDart().hour()
DayDart().hour(12)
获取或设置分钟。
接受 0 到 59 的数字。如果超过这个范围,将持续到小时
DayDart().minute()
DayDart().minute(12)
获取或设置秒。
接受 0 到 59 的数字。如果超过这个范围,将持续到分钟。
DayDart().second()
DayDart().second(12)
获取或设置毫秒。
接受 0 到 999 的数字。如果超过这个范围,将持续到秒。
DayDart().millisecond()
DayDart().millisecond(12)
一旦有了 DayDart 对象,您可能希望以某种方式对其进行操作。
DayDart 支持这样的方法链接:
DayDart('2019-01-25')..add(1, DayUnits.D)..subtract(1, DayUnits.y)..year(2009)..toString()
所有可用单位列表
单位 | 描述 |
---|---|
D | 天(1 到 31) |
M | 月份(1-12) |
y | 年 |
h | 小时 |
m | 分钟 |
s | 秒 |
ms | 毫秒 |
返回一个克隆的 DayDart
对象,并添加指定的时间。
DayDart().add(7, DayUnits.D)
返回克隆的DayDart
对象,并减去指定的时间。
DayDart().subtract(7, DayUnits.D)
所有可用单位列表
单位 | 描述 |
---|---|
D | 天 |
M | 月份 |
y | 年 |
h | 小时 |
m | 分钟 |
s | 秒 |
ms | 毫秒 |
一个月的天数列表
DayDart().daysInMonth(DayDart('2011-01-01')) // default milliseconds
这指示DayDart
对象是否在另一个提供的 date-time 之前。
DayDart().isBefore(DayDart('2011-01-01')) // default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。
DayDart().isBefore('2011-01-01', DayUnits.y)
这指示DayDart
对象是否与另一个提供的 date-time 相同。
DayDart().isSame(DayDart('2011-01-01')) // default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。
DayDart().isSame('2011-01-01', DayUnits.y)
这指示DayDart
对象是否在另一个提供的 date-time 之后。
DayDart().isAfter(DayDart('2011-01-01')) // default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。
DayDart().isAfter('2011-01-01', DayUnits.y)
这表明DayDart
对象是相同的还是在另一个提供的 date-time 之前。
DayDart().isSameOrBefore(DayDart('2011-01-01')) // default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。
DayDart().isSameOrBefore('2011-01-01', DayUnits.y)
这指示DayDart
对象是相同的还是在另一个提供的 date-time 之后。
DayDart().isSameOrAfter(DayDart('2011-01-01')) // default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。
DayDart().isSameOrAfter('2011-01-01', DayUnits.y)
这指示DayDart
对象是否位于另外两个提供的 date-time 之间。
DayDart('2010-10-20').isBetween('2010-10-19', DayDart('2010-10-25'))// default milliseconds
如果希望将粒度限制为单位而不是毫秒,则将其作为第三个参数传递。
DayDart().isBetween('2010-10-19', '2010-10-25', DayUnits.y)
这指示变量是否为 DayDart
对象。
DayDart.isDayDart(DayDart()) // true
DayDart.isDayDart(DateTime.now()) // false
也可以使用 is
操作符:
DayDart() is DayDart // true
这表明 DayDart
对象的年份是否为闰年。
DayDart('2000-01-01').isLeapYear() // true
根据传入的令牌字符串获取格式化的日期。
要对字符进行转义,请将它们括在方括号中(例如'MM')。
DayDart().format()
DayDart('2019-01-25').format('dd/MM/yyyy') // '25/01/2019'
所有可用解析标记的列表
标识 | 描述 |
---|---|
d | DAY |
E | ABBR_WEEKDAY |
EEEE | WEEKDAY |
LLL | ABBR_STANDALONE_MONTH |
LLLL | STANDALONE_MONTH |
M | NUM_MONTH |
Md | NUM_MONTH_DAY |
MEd | NUM_MONTH_WEEKDAY_DAY |
MMM | ABBR_MONTH |
MMMd | ABBR_MONTH_DAY |
MMMEd | ABBR_MONTH_WEEKDAY_DAY |
MMMM | MONTH |
MMMMd | MONTH_DAY |
MMMMEEEEd | MONTH_WEEKDAY_DAY |
QQQ | ABBR_QUARTER |
QQQQ | QUARTER |
y | YEAR |
yM | YEAR_NUM_MONTH |
yMd | YEAR_NUM_MONTH_DAY |
yMEd | YEAR_NUM_MONTH_WEEKDAY_DAY |
yMMM | YEAR_ABBR_MONTH |
yMMMd | YEAR_ABBR_MONTH_DAY |
yMMMEd | YEAR_ABBR_MONTH_WEEKDAY_DAY |
yMMMM | YEAR_MONTH |
yMMMMd | YEAR_MONTH_DAY |
yMMMMEEEEd | YEAR_MONTH_WEEKDAY_DAY |
yQQQ | YEAR_ABBR_QUARTER |
yQQQQ | YEAR_QUARTER |
H | HOUR24 |
Hm | HOUR24_MINUTE |
Hms | HOUR24_MINUTE_SECOND |
j | HOUR |
jm | HOUR_MINUTE |
jms | HOUR_MINUTE_SECOND |
m | MINUTE |
ms | MINUTE_SECOND |
s | SECOND |
要获得从DayDart
对象解析的本地日期对象的副本,请使用 DayDart#toDate。
DayDart('2019-01-25').toDate()
DayDart('2019-01-25').toList() // [ 2019, 1, 25, 0, 0, 0, 0 ]
返回具有日期属性的Map
。
DayDart('2019-01-25').toMap()
/*
{
years: 2019,
months: 1,
date: 25,
hours: 0,
minutes: 0,
seconds: 0,
milliseconds: 0
}
*/
格式化为 ISO 8601 字符串。
DayDart('2019-01-25').toISOString() // 2019-01-25T00:00:00.000
返回日期的字符串表示形式。
DayDart('2019-01-25').toString() // 2019-01-25 00:00:00.000
本项目将会持续更新,欢迎大家来提出宝贵的意见。