概述:

  • 表示一个时间点
  • 通过构造函数或解析格式化的字符串创建DateTime对象,并且符合ISO 8601标准的子集,小时是24小时制,范围在0-23之间
  • DateTime对象创建之后,将是固定不变的, 不可被修改
  • DateTime对象默认使用的是本地时区,除非显示地指定UTC时区

一,方法详解

  • 命名构造,获取当前时间

    now()
  • 指定时间

    //创建时间对象,并指定时间
    DateTime victoryDay = new DateTime(,,);//
  • 时间跨度

    //计算时间跨度,例如计算2天56时14分的跨度
    Duration timeRemaining = new Duration(days:, hours:, minutes:);
    print(timeRemaining);//104:14:00.000000
    }
  • DateTime转时间戳
    millisecondsSinceEpoch
  • 时间戳转DateTime
    fromMillisecondsSinceEpoch
  • 字符串转DateTime
    parse(string)
  • 时间比较---在之前
    isBefore(date)
  • 时间比较---在之后
    isAfter(date)
  • 时间比较---相等
    isAtSameMomentAs(date)
  • 大于返回1;等于返回0;小于返回-1
    compareTo(date)
  • 时间增加
    add(Duration)
  • 时间减少
    subtract(Duration)
  • 时间差 两个时间相差 小时数
    difference(date)
  • 本地时区简码
    timeZoneName
  • 返回UTC与本地时差 小时数
    timeZoneOffset
  • 返回   年、月、日、时、分、秒、毫秒、微妙
    year、month、day、hour、minute、second、millisecond、microsecond
  • 返回星期几
    weekday

二,字符串与日期相互转换  

  • String-->DateTime:

    DateTime.parse(String);
  • DateTime -->formatString:
    formatDate(DateTime ,[yyyy,'-',mm,'-',dd]);

三,代码示例

var today = DateTime.now();
print('当前时间是:$today');
var date1 = today.millisecondsSinceEpoch;
print('当前时间戳:$date1');
var date2 = DateTime.fromMillisecondsSinceEpoch(date1);
print('时间戳转日期:$date2');
//拼接成date
var dentistAppointment = new DateTime(, , , , ,);
print(dentistAppointment);
// 字符串转date
DateTime date3 = DateTime.parse("2019-06-20 15:32:41");
print(date3);
// 时间比较
print(today.isBefore(date3));// 在之前
print(today.isAfter(date3)); // 在之后
print(date3.isAtSameMomentAs(date3));// 相同 print(date3.compareTo(today));// 大于返回1;等于返回0;小于返回-1。
// print(DateTime.now().toString());
// print(DateTime.now().toIso8601String()); //时间增加
var fiftyDaysFromNow = today.add(new Duration(days: ));
print('today加5天:$fiftyDaysFromNow');
//时间减少
DateTime fiftyDaysAgo = today.subtract(new Duration(days: ));
print('today减5天:$fiftyDaysAgo');
//时间差 两个时间相差 小时数
print('比较两个时间 差 小时数:${fiftyDaysFromNow.difference(fiftyDaysAgo)}'); print('本地时区简码:${today.timeZoneName}'); print('返回UTC与本地时差 小时数:${today.timeZoneOffset}'); print('获取年月日:${today.year}');//month、day、hour、minute、second、millisecond、microsecond print('星期:${today.weekday}');// 返回星期几

四,示例结果  

【Flutter学习】之DateTime日期转换的更多相关文章

  1. Java SE学习之printf 日期转换符

    本文是学习网络上的文章时的总结,感谢大家无私的分享. System.out.printf()方法能够对日期做处理输出. 相应列表 转换符 类型 举例 c 完整的日期和时间 Mon Feb 09 18: ...

  2. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  3. C++实现日期转换类DateTime

    概述 工作中我们在网络传输时使用time_t来传输时间,在显示时使用字符串来显示,下面是一个日期转换类的实现,方便以后使用: // DateTime.hpp #ifndef _DATETIME_H # ...

  4. C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)

    C# MVC 用户登录状态判断   来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...

  5. python 使用time / datetime进行时间、时间戳、日期转换

    python 使用time 进行时间.时间戳.日期格式转换 #!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2017/11/7 15:53 # ...

  6. C# DATETIME格式转换汇总 根据日期获取星期

    原文:C# DATETIME格式转换汇总 根据日期获取星期 C# DateTime.Now.Year --2019(年) DateTime.Now.Month --9(月) DateTime.Now. ...

  7. C# DateTime日期格式化

    在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...

  8. SQL Server使用convert对datetime日期数据进行获取

    来源:http://database.51cto.com/art/201007/211883.htm 备注:本文的语法讲解确实是比较乱,似乎格式不太严谨.参考时还是以实例验证为准比较好 以下的文章主要 ...

  9. C# DateTime 日期加1天 减一天 加一月 减一月 等方法

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-).ToShortDateString ...

随机推荐

  1. Python3.5-20190529-自动登录百度

  2. CQOI2007 余数之和

    Time Limit: 5 Sec Memory Limit: 128 MB Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + ...

  3. CF 1172E Nauuo and ODT ——LCT

    题目:http://codeforces.com/contest/1172/problem/E LCT好题. 考虑对每个颜色求出 “不是该颜色的点组成的连通块的 siz2 之和” .每个颜色用 LCT ...

  4. 八. jenkins参数化构建 git分支

    使用git管理代码时往往会有多分支开发,这时部署通过修改配置不试用.可以通过参数化构建. 1.通过字符参数方式 新建一个maven项目,选择参数化构建过程-字符参数,如下: 源码管理中配置如下: 其它 ...

  5. SPRING CLOUD微服务DEMO-上篇

    目录 1. 微服务架构 2. 远程调用方式 2.1 RPC/RMI 2.2 Http 2.3 如何选择 3. Http客户端工具 3.1 RestTemplate 4. Spring Boot 搭建项 ...

  6. apt-cyg for Cygwin(setup-x86_64 .exe )在win10下的安装

    cygwin安装后,如果没有选择安装所有包(这会占用5G空间,很多包不需要),再需要安装新的包,可以启动setup-x86_64 .exe(我把它放置在C:\cygwin64目录下),添加包(如wge ...

  7. Mac-如何安装apk到android手机

    将电脑上的apk安装到手机,Windows系统可以使用usb连接Android手机,然后打开编辑手机中的文件,直接粘贴apk到手机上安装apk.对于Mac来说就没有那么简单啦.那么Mac如何将apk安 ...

  8. upc组队赛16 Melody【签到水】

    Melody 题目描述 YellowStar is versatile. One day he writes a melody A = [A1, ..., AN ], and he has a sta ...

  9. 为GitLab帐号添加SSH keys并连接GitLab

    https://blog.csdn.net/xyzchenxiaolin/article/details/51852333 为github帐号添加SSH keys使用git clone命令从GitLa ...

  10. make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误

    解决CentOS 7 中,make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误 在CentOS 7中,使用static方法编译,需要安装static vers ...