csjiabin's blog csjiabin's blog
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

csjiabin

前端界的小菜鸟
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 《Git》学习笔记
  • Markdown使用指南
  • Mathjax与KaTex渲染数学公式
  • iTerm2 + Oh My Zsh 打造舒适终端体验
  • linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
  • Nginx负载均衡配置与负载策略
  • DayDart 具备 Day.js 一样API的时间处理库.
    • Getting Started
      • Install
      • 导入 Import
    • API
      • 解析
      • 默认值
      • 字符串
      • DateTime 对象
      • 时间戳(毫秒)
      • 克隆
      • 验证
      • 获取
      • 年
      • 月
      • 季度
      • 日
      • 星期
      • 小时
      • 分钟
      • 秒
      • 毫秒
      • 操作
      • 增加
      • 减少
      • 查询
      • 是否之前
      • 是否相同
      • 是否之后
      • 是否相同或之前
      • 是否相同或之后
      • 是否之间
      • 判断是否为 DayDart
      • 是否闰年
      • 显示
      • 格式化
      • 转 DateTime 对象
      • 转 List
      • 转 Map
      • 转 IOS 8601 字符串
      • 转字符串
  • VS Code的使用
  • 咖啡知识
  • 更多
csjiabin
2021-06-12
目录

DayDart 具备 Day.js 一样API的时间处理库.

# Getting Started

DayDart (opens new window) 具备 Day.js 一样 API 的时间处理库。

# Install

在项目下运行此命令

dart pub add daydart
# or
flutter pub add daydart
1
2
3

这将在包的 pubspec.yaml 中添加这样的一行(并运行一个隐式 dart pub get):

dependencies:
  daydart: ^0.0.1
1
2

也可以直接在 pubspec.yaml 中直接git路径引入,然后手动执行dart pub get

dependencies:
  daydart:
    url: https://github.com/csjiabin/daydart.git
    ref: main
1
2
3
4

# 导入 Import

现在在您的 Dart 代码中,您可以使用:

import 'package:daydart/daydart.dart';
1

# API

DayDart 对象是不可变的,所有的调用都将返回一个新的 DayDart 对象。

  • 解析
    • 当前时间
    • 时间字符串
    • DateTime 对象
    • 时间戳
    • 克隆
    • 验证
  • 获取
    • 年
    • 月
    • 季度
    • 日
    • 星期
    • 小时
    • 分钟
    • 秒
    • 毫秒
  • 操作
    • 增加
    • 减少
  • 查询
    • 是否之前
    • 是否相同
    • 是否之后
    • 是否相同或之前
    • 是否相同或之后
    • 是否之间
    • 判断是否为 DayDart
    • 是否闰年
  • 显示
    • 格式化
    • 转 DateTime 对象
    • 转 List
    • 转 Map
    • 转 IOS 8601 字符串
    • 转字符串

# 解析

在 DayDart 中传入支持的格式。

# 默认值

不带参数调用 DayDart()将返回一个新的DayDart对象,其中包含当前日期和时间

DayDart now = DayDart()
1

# 字符串

以 ISO 8601 格式解析给定字符串并返回DayDart对象实例。

DayDart('2018-04-04')
1

# DateTime 对象

传入的一个 DateTime 对象。

DayDart(DateTime.now());
1

# 时间戳(毫秒)

通过一个毫秒的整数值来创建DayDart

DayDart(1623484401193);
1

# 克隆

所有 DayDart 对象是不可变的。如果需要的话,DayDart#clone 仍然可以创建当前对象的一个克隆。

DayDart a = DayDart()
DayDart b = a.clone()
1
2

在DayDart对象上调用 DayDart()也会克隆它。

DayDart a = DayDart()
DayDart b = DayDart(a)
1
2

# 验证

返回一个布尔值,指示DayDart对象是否包含有效日期。

DayDart().isValid()
1

# 获取

# 年

获取或设置年份。

DayDart().year();
DayDart().year(2000);
1
2

# 月

获取或设置月份。

接受 1 到 12 的数字。如果超过这个范围,将一直持续到年底。

DayDart().month();
DayDart().month(1);
1
2

# 季度

获取或设置季度。

DayDart('2010-04-01').quarter() // 2
DayDart('2010-04-01').quarter(2)
1
2

# 日

获取或设置月份的日期。

接受从 1 到 31 的数字。如果超过这个范围,将持续到日。

DayDart().day()
DayDart().day(1)
1
2

# 星期

获取星期

DayDart().week()
1

# 小时

获取或设置小时。

接受 0 到 59 的数字。如果超过这个范围,将持续到日。

DayDart().hour()
DayDart().hour(12)
1
2

# 分钟

获取或设置分钟。

接受 0 到 59 的数字。如果超过这个范围,将持续到小时

DayDart().minute()
DayDart().minute(12)
1
2

# 秒

获取或设置秒。

接受 0 到 59 的数字。如果超过这个范围,将持续到分钟。

DayDart().second()
DayDart().second(12)
1
2

# 毫秒

获取或设置毫秒。

接受 0 到 999 的数字。如果超过这个范围,将持续到秒。

DayDart().millisecond()
DayDart().millisecond(12)
1
2

# 操作

一旦有了 DayDart 对象,您可能希望以某种方式对其进行操作。

DayDart 支持这样的方法链接:

DayDart('2019-01-25')..add(1, DayUnits.D)..subtract(1, DayUnits.y)..year(2009)..toString()
1

所有可用单位列表

单位 描述
D 天(1 到 31)
M 月份(1-12)
y 年
h 小时
m 分钟
s 秒
ms 毫秒

# 增加

返回一个克隆的 DayDart 对象,并添加指定的时间。

DayDart().add(7, DayUnits.D)
1

单位不区分大小写,支持复数和缩写形式。

# 减少

返回克隆的DayDart对象,并减去指定的时间。

DayDart().subtract(7, DayUnits.D)
1

单位不区分大小写,支持复数和缩写形式。

# 查询

所有可用单位列表

缩写 描述
D 天
M 月份
y 年
h 小时
m 分钟
s 秒
ms 毫秒

# 是否之前

这指示DayDart对象是否在另一个提供的 date-time 之前。

DayDart().isBefore(DayDart('2011-01-01')) // default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。

DayDart().isBefore('2011-01-01', DayUnits.y)
1

# 是否相同

这指示DayDart对象是否与另一个提供的 date-time 相同。

DayDart().isSame(DayDart('2011-01-01')) // default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。

DayDart().isSame('2011-01-01', DayUnits.y)
1

单位不区分大小写,支持复数和缩写形式。

# 是否之后

这指示DayDart对象是否在另一个提供的 date-time 之后。

DayDart().isAfter(DayDart('2011-01-01')) // default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。

DayDart().isAfter('2011-01-01', DayUnits.y)
1

单位不区分大小写,支持复数和缩写形式。

# 是否相同或之前

这表明DayDart对象是相同的还是在另一个提供的 date-time 之前。

DayDart().isSameOrBefore(DayDart('2011-01-01')) // default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。

DayDart().isSameOrBefore('2011-01-01', DayUnits.y)
1

单位不区分大小写,支持复数和缩写形式。

# 是否相同或之后

这指示DayDart对象是相同的还是在另一个提供的 date-time 之后。

DayDart().isSameOrAfter(DayDart('2011-01-01')) // default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第二个参数传递。

DayDart().isSameOrAfter('2011-01-01', DayUnits.y)
1

单位不区分大小写,支持复数和缩写形式。

# 是否之间

这指示DayDart对象是否位于另外两个提供的 date-time 之间。

DayDart('2010-10-20').isBetween('2010-10-19', DayDart('2010-10-25'))// default milliseconds
1

如果希望将粒度限制为单位而不是毫秒,则将其作为第三个参数传递。

DayDart().isBetween('2010-10-19', '2010-10-25', DayUnits.y)
1

单位不区分大小写,支持复数和缩写形式。

# 判断是否为 DayDart

这指示变量是否为 DayDart 对象。

DayDart.isDayDart(DayDart()) // true
DayDart.isDayDart(DateTime.now()) // false
1
2

也可以使用 is 操作符:

DayDart() is DayDart // true
1

# 是否闰年

这表明 Day.js 对象的年份是否为闰年。

DayDart('2000-01-01').isLeapYear() // true
1

# 显示

# 格式化

根据传入的令牌字符串获取格式化的日期。

要对字符进行转义,请将它们括在方括号中(例如'MM')。

DayDart().format()

DayDart('2019-01-25').format('dd/MM/yyyy') // '25/01/2019'
1
2
3

所有可用解析标记的列表

标识 描述
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

# 转 DateTime 对象

要获得从DayDart对象解析的本地日期对象的副本,请使用 DayDart#toDate。

DayDart('2019-01-25').toDate()
1

# 转 List

DayDart('2019-01-25').toList() // [ 2019, 0, 25, 0, 0, 0, 0 ]
1

# 转 Map

返回具有日期属性的Map。

DayDart('2019-01-25').toMap()
/*
{
  years: 2019,
  months: 0,
  date: 25,
  hours: 0,
  minutes: 0,
  seconds: 0,
  milliseconds: 0
}
*/
1
2
3
4
5
6
7
8
9
10
11
12

# 转 IOS 8601 字符串

格式化为 ISO 8601 字符串。

DayDart('2019-01-25').toISOString() // 2019-01-25T00:00:00.000
1

# 转字符串

返回日期的字符串表示形式。

DayDart('2019-01-25').toString() // 2019-01-25 00:00:00.000
1
编辑 (opens new window)
#dart#dayjs#flutter
上次更新: 2022/09/30, 11:34:22
Nginx负载均衡配置与负载策略
VS Code的使用

← Nginx负载均衡配置与负载策略 VS Code的使用→

最近更新
01
咖啡知识
10-13
02
documentation
09-29
03
benchmarking
09-29
更多文章>
Theme by Vdoing | Copyright © 2018-2022 csjiabin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式