概述:

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

一,方法详解

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

    now()
  • 指定时间

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

    //计算时间跨度,例如计算2天56时14分的跨度
    Duration timeRemaining = new Duration(days:2, hours:56, minutes:14);
    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(2019, 6, 20, 17, 30,20);
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: 5));
print('today加5天:$fiftyDaysFromNow');
//时间减少
DateTime fiftyDaysAgo = today.subtract(new Duration(days: 5));
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}');// 返回星期几

四,示例结果  

轉發:https://www.cnblogs.com/lxlx1798/p/11267411.html

Flutter的DateTime轉換的各種方法的更多相关文章

  1. JavaScript中的ASCII碼轉換成字符的兩種方法

    方法一:轉義字符 \xxx:用十六進制的ASCII碼值轉換成字符. 方法二:String方法 String.fromCharCode(value): //用十進制的ASCII碼值轉換成字符. 舉例:結 ...

  2. Objective-C - NSString 和 NSDate 互相轉換

    記錄一下在 Objective-C 由 NSString 轉換為 NSDate 或 NSDate 轉換為 NSString 的方法. 很簡單,使用 NSDateFormatter 就可以令 NSStr ...

  3. ASP.NET MVC 4 部署到 Windows Azure 如何轉換時區設定

    由於公司慢慢地開始將新的專案都移往 Windows Azure 雲端平台做網站代管,漸漸地也開始遇到一些小問題,這些問題在還沒上雲端之前通常不會發生,像我們這次遇到的問題就跟顯示時間有關.由於 Win ...

  4. 高效率dc升壓轉換器 應用技巧談 功率設計

    為便攜式電子設備開發電源電路要求設計工程師通過最大程度地提高功率和降低整個系統的功耗來延長電池使用壽命,這推動器件本身的尺寸變得更小,從而有益于在設計終端產品時獲得更高靈活性.這種設計的最重要元器件之 ...

  5. RGB與CIELAB色彩空間轉換

    原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...

  6. 用EXCEL做快速傅立葉轉換_FFT in Excel

    转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...

  7. 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具

    花了週末兩天時間,將opencc移植成WIN10-UWP可用的庫,並完成自己的繁簡轉換工具. 我的繁簡轉換工具下載地址為:https://www.microsoft.com/store/apps/9n ...

  8. mysql 將時間戳直接轉換成日期時間

    from_unixtime()是MySQL裏的時間函數 Sql代碼 select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') ...

  9. C++ 的隱式型別轉換

    先上一段代碼, 這段代碼竟然可以編譯過,我的老天! class Boo { Boo(int c){ cout << "I'm Boo"; } }; void do_so ...

随机推荐

  1. web服务器、WSGI跟Flask(等框架)之间的关系

    之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 HTT ...

  2. 组建MySQL集群的几种方案

    组建MySQL集群的几种方案LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个)DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂 ...

  3. JavaScript 利用 filter+正则表达式对 list进行过滤包括模糊匹配

      模糊查找 this.users.filter((item)=>{ var reg= new RegExp(this.searchText,'i'); return reg.test(item ...

  4. Linux 软件安装到哪里合适,目录详解

    文章来源: https://blog.csdn.net/qq_22771739/article/details/83933473 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有 ...

  5. day38—JavaScript的运动基础-匀速运动

    转行学开发,代码100天——2018-04-23 一.运动基础框架 JavaScript的运动可以广义理解为渐变效果,直接移动效果等,图网页上常见的“分享到”,banner,透明度变化等.其实现的基本 ...

  6. JS创建表格完整

    <!DOCTYPE> <html> <head> <meta charset=utf-8 /> <title>动态表格</title& ...

  7. SVG绘制随机的柱形图+php

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. ECMAScript 2015 可迭代协议:迭代普通对象

    可迭代协议允许 JavaScript 对象去定义或定制它们的迭代行为, 例如(定义)在一个 for..of结构中什么值可以被循环(得到). 一些内置类型都是内置的可迭代类型并且有默认的迭代行为( 比如 ...

  9. MySQL 查询语句--------------进阶6:连接查询

    #进阶6:连接查询 /* 含义:多个表格连接,当查询的字段来自于多个表时候,就会用到连接查询 我觉得这里类似于excel中的vlookup函数 笛卡尔乘积现象:表1有m行,表2有n行,结果有m*n行 ...

  10. Rust SDL2配置

    github地址 https://github.com/Rust-SDL2/rust-sdl2 clone或下载这个项目 本文使用的是MSVC版本 上面链接页面搜Windows (MSVC) 得知需要 ...