zoukankan      html  css  js  c++  java
  • Flutter的DateTime轉換的各種方法

    概述:

    • 表示一个时间点
    • 通过构造函数或解析格式化的字符串创建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

  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/ssjf/p/11759441.html
Copyright © 2011-2022 走看看