Luckean's blog Luckean's blog
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Luckean

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 项目

  • widget

  • dart

    • dart 数组的定义
    • 时间 DateTime
    • 时间 DateTime
      • 浮点 double 取整 保留小数
    • ios

    • andriod

    • app上架

    • plug

    • 安装

    • 错误信息记录

    • Flutter
    • dart
    Luckean
    2022-06-17
    目录

    时间 DateTime

    # /// DateFormat.

    enum DateFormat {
      DEFAULT, //yyyy-MM-dd HH:mm:ss.SSS
      NORMAL, //yyyy-MM-dd HH:mm:ss
      YEAR_MONTH_DAY_HOUR_MINUTE, //yyyy-MM-dd HH:mm
      YEAR_MONTH_DAY, //yyyy-MM-dd
      YEAR_MONTH, //yyyy-MM
      MONTH_DAY, //MM-dd
      MONTH_DAY_HOUR_MINUTE, //MM-dd HH:mm
      HOUR_MINUTE_SECOND, //HH:mm:ss
      HOUR_MINUTE, //HH:mm
    
      ZH_DEFAULT, //yyyy年MM月dd日 HH时mm分ss秒SSS毫秒
      ZH_NORMAL, //yyyy年MM月dd日 HH时mm分ss秒  /  timeSeparate: ":" --> yyyy年MM月dd日 HH:mm:ss
      ZH_YEAR_MONTH_DAY_HOUR_MINUTE, //yyyy年MM月dd日 HH时mm分  /  timeSeparate: ":" --> yyyy年MM月dd日 HH:mm
      ZH_YEAR_MONTH_DAY, //yyyy年MM月dd日
      ZH_YEAR_MONTH, //yyyy年MM月
      ZH_MONTH_DAY, //MM月dd日
      ZH_MONTH_DAY_HOUR_MINUTE, //MM月dd日 HH时mm分  /  timeSeparate: ":" --> MM月dd日 HH:mm
      ZH_HOUR_MINUTE_SECOND, //HH时mm分ss秒
      ZH_HOUR_MINUTE, //HH时mm分
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    /// 一些常用格式参照。可以自定义格式,例如:"yyyy/MM/dd HH:mm:ss","yyyy/M/d HH:mm:ss"。 /// 格式要求 /// year -> yyyy/yy month -> MM/M day -> dd/d /// hour -> HH/H minute -> mm/m second -> ss/s

    class DataFormats {
      static String full = "yyyy-MM-dd HH:mm:ss";
      static String y_mo_d_h_m = "yyyy-MM-dd HH:mm";
      static String y_mo_d = "yyyy-MM-dd";
      static String y_mo = "yyyy-MM";
      static String mo_d = "MM-dd";
      static String mo_d_h_m = "MM-dd HH:mm";
      static String h_m_s = "HH:mm:ss";
      static String h_m = "HH:mm";
    
      static String zh_full = "yyyy年MM月dd日 HH时mm分ss秒";
      static String zh_y_mo_d_h_m = "yyyy年MM月dd日 HH时mm分";
      static String zh_y_mo_d = "yyyy年MM月dd日";
      static String zh_y_mo = "yyyy年MM月";
      static String zh_mo_d = "MM月dd日";
      static String zh_mo_d_h_m = "MM月dd日 HH时mm分";
      static String zh_h_m_s = "HH时mm分ss秒";
      static String zh_h_m = "HH时mm分";
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    /// month->days.

    Map<int, int> MONTH_DAY = {
      1: 31,
      2: 28,
      3: 31,
      4: 30,
      5: 31,
      6: 30,
      7: 31,
      8: 31,
      9: 30,
      10: 31,
      11: 30,
      12: 31,
    };
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    /// Date Util. class DateUtil { /// get DateTime By DateStr.

    # /// 通过字符串时间 获取 DateTime

     static DateTime? getDateTime(String dateStr, {bool? isUtc}) {
        DateTime? dateTime = DateTime.tryParse(dateStr);
        if (isUtc != null) {
          if (isUtc) {
            dateTime = dateTime?.toUtc();
          } else {
            dateTime = dateTime?.toLocal();
          }
        }
        return dateTime;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    /// get DateTime By Milliseconds.

    # /// 通过 时间戳 获取 DateTime

      static DateTime getDateTimeByMs(int milliseconds, {bool isUtc = false}) {
        return DateTime.fromMillisecondsSinceEpoch(milliseconds, isUtc: isUtc);
      }
    
    1
    2
    3

    /// get DateMilliseconds By DateStr.

    # /// 获取时间戳13位(单位 毫秒)

      static int? getDateMsByTimeStr(String dateStr) {
        DateTime? dateTime = DateTime.tryParse(dateStr);
        return dateTime?.millisecondsSinceEpoch;
      }
    
    1
    2
    3
    4

    /// get Now Date Milliseconds.

    # /// 获取当前时间戳13位(单位 毫秒)

      static int getNowDateMs() {
        return DateTime.now().millisecondsSinceEpoch;
      }
    
    1
    2
    3

    /// get Now Date Str.(yyyy-MM-dd HH:mm:ss)

    # /// 获取当前 字符串时间 (yyyy-MM-dd HH:mm:ss)

      static String? getNowDateStr() {
        return getDateStrByDateTime(DateTime.now());
      }
    
    1
    2
    3

    /// get DateStr By DateStr. /// dateStr date String. /// format DateFormat type. /// dateSeparate date separate. /// timeSeparate time separate.

    # /// 通过字符串时间 格式化 字符串时间

      static String? getDateStrByTimeStr(
        String dateStr, {
        DateFormat format = DateFormat.NORMAL,
        String? dateSeparate,
        String? timeSeparate,
        bool? isUtc,
      }) {
        return getDateStrByDateTime(
          getDateTime(dateStr, isUtc: isUtc),
          format: format,
          dateSeparate: dateSeparate,
          timeSeparate: timeSeparate,
        );
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    /// get DateStr By Milliseconds. /// milliseconds milliseconds. /// format DateFormat type. /// dateSeparate date separate. /// timeSeparate time separate.

    # /// 通过时间戳 获取 时间字符串(可格式化)

      static String? getDateStrByMs(
        int milliseconds, {
        DateFormat format = DateFormat.NORMAL,
        String? dateSeparate,
        String? timeSeparate,
        bool isUtc = false,
      }) {
        DateTime dateTime = getDateTimeByMs(milliseconds, isUtc: isUtc);
        return getDateStrByDateTime(
          dateTime,
          format: format,
          dateSeparate: dateSeparate,
          timeSeparate: timeSeparate,
        );
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    /// get DateStr By DateTime. /// dateTime dateTime. /// format DateFormat type. /// dateSeparate date separate. /// timeSeparate time separate.

    # /// 通过DateTime 获取 字符串时间 (可格式化)

    static String? getDateStrByDateTime(
        DateTime? dateTime, {
        DateFormat format = DateFormat.NORMAL,
        String? dateSeparate,
        String? timeSeparate,
      }) {
        if (dateTime == null) return null;
        String dateStr = dateTime.toString();
        if (isZHFormat(format)) {
          dateStr = formatZHDateTime(dateStr, format, timeSeparate);
        } else {
          dateStr = formatDateTime(dateStr, format, dateSeparate, timeSeparate);
        }
        return dateStr;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    /// format ZH DateTime. /// time time string. /// format DateFormat type. ///timeSeparate time separate.

    # ///获取中国时间 年月日

      static String formatZHDateTime(
        String time,
        DateFormat format,
        String? timeSeparate,
      ) {
        time = convertToZHDateTimeString(time, timeSeparate);
        switch (format) {
          case DateFormat.ZH_NORMAL: //yyyy年MM月dd日 HH时mm分ss秒
            time = time.substring(
                0,
                "yyyy年MM月dd日 HH时mm分ss秒".length -
                    (timeSeparate == null || timeSeparate.isEmpty ? 0 : 1));
            break;
          case DateFormat.ZH_YEAR_MONTH_DAY_HOUR_MINUTE: //yyyy年MM月dd日 HH时mm分
            time = time.substring(
                0,
                "yyyy年MM月dd日 HH时mm分".length -
                    (timeSeparate == null || timeSeparate.isEmpty ? 0 : 1));
            break;
          case DateFormat.ZH_YEAR_MONTH_DAY: //yyyy年MM月dd日
            time = time.substring(0, "yyyy年MM月dd日".length);
            break;
          case DateFormat.ZH_YEAR_MONTH: //yyyy年MM月
            time = time.substring(0, "yyyy年MM月".length);
            break;
          case DateFormat.ZH_MONTH_DAY: //MM月dd日
            time = time.substring("yyyy年".length, "yyyy年MM月dd日".length);
            break;
          case DateFormat.ZH_MONTH_DAY_HOUR_MINUTE: //MM月dd日 HH时mm分
            time = time.substring(
                "yyyy年".length,
                "yyyy年MM月dd日 HH时mm分".length -
                    (timeSeparate == null || timeSeparate.isEmpty ? 0 : 1));
            break;
          case DateFormat.ZH_HOUR_MINUTE_SECOND: //HH时mm分ss秒
            time = time.substring(
                "yyyy年MM月dd日 ".length,
                "yyyy年MM月dd日 HH时mm分ss秒".length -
                    (timeSeparate == null || timeSeparate.isEmpty ? 0 : 1));
            break;
          case DateFormat.ZH_HOUR_MINUTE: //HH时mm分
            time = time.substring(
                "yyyy年MM月dd日 ".length,
                "yyyy年MM月dd日 HH时mm分".length -
                    (timeSeparate == null || timeSeparate.isEmpty ? 0 : 1));
            break;
          default:
            break;
        }
        return time;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
      static String formatTime(String time) {
        if (time == '') return '';
        DateTime d = DateTime.parse(time);
        int num_d = DateTime.parse(time).millisecondsSinceEpoch;
        int now = DateTime.now().millisecondsSinceEpoch;
        int diff = ((now - num_d) / 1000).truncate();
        if (diff < 30) {
          return '刚刚';
        } else if (diff < 3600) {
          // less 1 hour
          return "${(diff / 60).truncate()}分钟前";
        } else if (diff < 3600 * 24) {
          return "${(diff / 3600).truncate()}小时前";
        } else if (diff < 3600 * 24 * 2) {
          return '1天前';
        }
        return "${d.month}月${d.day}日 ${d.hour}:${d.second < 10 ? '0${d.second}' : d.second}";
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      static DateTime getDateTimeNowToZh() {
        return DateTime.fromMillisecondsSinceEpoch(
            DateTime.now().millisecondsSinceEpoch);
      }
    
    1
    2
    3
    4

    /// format DateTime. /// time time string. /// format DateFormat type. /// dateSeparate date separate. /// timeSeparate time separate.

    # /// 格式化时间 参数字符串时间

      static String formatDateTime(
        String time,
        DateFormat format,
        String? dateSeparate,
        String? timeSeparate,
      ) {
        switch (format) {
          case DateFormat.NORMAL: //yyyy-MM-dd HH:mm:ss
            time = time.substring(0, "yyyy-MM-dd HH:mm:ss".length);
            break;
          case DateFormat.YEAR_MONTH_DAY_HOUR_MINUTE: //yyyy-MM-dd HH:mm
            time = time.substring(0, "yyyy-MM-dd HH:mm".length);
            break;
          case DateFormat.YEAR_MONTH_DAY: //yyyy-MM-dd
            time = time.substring(0, "yyyy-MM-dd".length);
            break;
          case DateFormat.YEAR_MONTH: //yyyy-MM
            time = time.substring(0, "yyyy-MM".length);
            break;
          case DateFormat.MONTH_DAY: //MM-dd
            time = time.substring("yyyy-".length, "yyyy-MM-dd".length);
            break;
          case DateFormat.MONTH_DAY_HOUR_MINUTE: //MM-dd HH:mm
            time = time.substring("yyyy-".length, "yyyy-MM-dd HH:mm".length);
            break;
          case DateFormat.HOUR_MINUTE_SECOND: //HH:mm:ss
            time =
                time.substring("yyyy-MM-dd ".length, "yyyy-MM-dd HH:mm:ss".length);
            break;
          case DateFormat.HOUR_MINUTE: //HH:mm
            time = time.substring("yyyy-MM-dd ".length, "yyyy-MM-dd HH:mm".length);
            break;
          default:
            break;
        }
        time = dateTimeSeparate(time, dateSeparate, timeSeparate);
        return time;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

    /// is format to ZH DateTime String

    # /// 自定义格式化中国时间

      static bool isZHFormat(DateFormat format) {
        return format == DateFormat.ZH_DEFAULT ||
            format == DateFormat.ZH_NORMAL ||
            format == DateFormat.ZH_YEAR_MONTH_DAY_HOUR_MINUTE ||
            format == DateFormat.ZH_YEAR_MONTH_DAY ||
            format == DateFormat.ZH_YEAR_MONTH ||
            format == DateFormat.ZH_MONTH_DAY ||
            format == DateFormat.ZH_MONTH_DAY_HOUR_MINUTE ||
            format == DateFormat.ZH_HOUR_MINUTE_SECOND ||
            format == DateFormat.ZH_HOUR_MINUTE;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # /// convert To ZH DateTime String

      static String convertToZHDateTimeString(String time, String? timeSeparate) {
        time = time.replaceFirst("-", "年");
        time = time.replaceFirst("-", "月");
        time = time.replaceFirst(" ", "日 ");
        if (timeSeparate == null || timeSeparate.isEmpty) {
          time = time.replaceFirst(":", "时");
          time = time.replaceFirst(":", "分");
          time = time.replaceFirst(".", "秒");
          time = time + "毫秒";
        } else {
          time = time.replaceAll(":", timeSeparate);
        }
        return time;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    # /// date Time Separate.

    static String dateTimeSeparate(
        String time,
        String? dateSeparate,
        String? timeSeparate,
      ) {
        if (dateSeparate != null) {
          time = time.replaceAll("-", dateSeparate);
        }
        if (timeSeparate != null) {
          time = time.replaceAll(":", timeSeparate);
        }
        return time;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    /// format date by milliseconds.

    # /// milliseconds 日期毫秒

      static String formatDateMs(
        int milliseconds, {
        bool isUtc = false,
        String? format,
      }) {
        return formatDate(
          getDateTimeByMs(milliseconds, isUtc: isUtc),
          format: format,
        );
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    /// format date by date str.

    # /// dateStr 日期字符串

      static String formatDateStr(String dateStr, {bool? isUtc, String? format}) {
        return formatDate(getDateTime(dateStr, isUtc: isUtc), format: format);
      }
    
    1
    2
    3

    # /// format date by DateTime.

    /// format 转换格式(已提供常用格式 DataFormats,可以自定义格式:"yyyy/MM/dd HH:mm:ss") /// 格式要求 /// year -> yyyy/yy month -> MM/M day -> dd/d /// hour -> HH/H minute -> mm/m second -> ss/s

      static String formatDate(DateTime? dateTime, {String? format}) {
        if (dateTime == null) return "";
        format = format ?? DataFormats.full;
        if (format.contains("yy")) {
          String year = dateTime.year.toString();
          if (format.contains("yyyy")) {
            format = format.replaceAll("yyyy", year);
          } else {
            format = format.replaceAll(
                "yy", year.substring(year.length - 2, year.length));
          }
        }
    
        format = _comFormat(dateTime.month, format, 'M', 'MM');
        format = _comFormat(dateTime.day, format, 'd', 'dd');
        format = _comFormat(dateTime.hour, format, 'H', 'HH');
        format = _comFormat(dateTime.minute, format, 'm', 'mm');
        format = _comFormat(dateTime.second, format, 's', 'ss');
        format = _comFormat(dateTime.millisecond, format, 'S', 'SSS');
    
    	return format;
    
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

    # /// com format.

      static String _comFormat(
          int value, String format, String single, String full) {
        if (format.contains(single)) {
          if (format.contains(full)) {
            format =
                format.replaceAll(full, value < 10 ? '0$value' : value.toString());
          } else {
            format = format.replaceAll(single, value.toString());
          }
        }
        return format;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    /// get WeekDay By Milliseconds.

    # /// 英文版星期

      static String? getWeekDayByMs(int milliseconds, {bool isUtc = false}) {
        DateTime dateTime = getDateTimeByMs(milliseconds, isUtc: isUtc);
        return getWeekDay(dateTime);
      }
    
    1
    2
    3
    4

    /// get ZH WeekDay By Milliseconds.

    # /// 获取 通过 时间戳 获取 星期几

      static String? getZHWeekDayByMs(int milliseconds, {bool isUtc = false}) {
        DateTime dateTime = getDateTimeByMs(milliseconds, isUtc: isUtc);
        return getZHWeekDay(dateTime);
      }
    
    1
    2
    3
    4

    # /// get WeekDay.

    static String? getWeekDay(DateTime dateTime) {
        String? weekday;
        switch (dateTime.weekday) {
          case 1:
            weekday = "Monday";
            break;
          case 2:
            weekday = "Tuesday";
            break;
          case 3:
            weekday = "Wednesday";
            break;
          case 4:
            weekday = "Thursday";
            break;
          case 5:
            weekday = "Friday";
            break;
          case 6:
            weekday = "Saturday";
            break;
          case 7:
            weekday = "Sunday";
            break;
          default:
            break;
        }
        return weekday;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    /// get ZH WeekDay.

    # /// 返回星期几

     static String? getZHWeekDay(DateTime dateTime) {
        String? weekday;
        switch (dateTime.weekday) {
          case 1:
            weekday = "星期一";
            break;
          case 2:
            weekday = "星期二";
            break;
          case 3:
            weekday = "星期三";
            break;
          case 4:
            weekday = "星期四";
            break;
          case 5:
            weekday = "星期五";
            break;
          case 6:
            weekday = "星期六";
            break;
          case 7:
            weekday = "星期日";
            break;
          default:
            break;
        }
        return weekday;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    /// Return whether it is leap year.

    # /// 是否是闰年 传参 DateTime

    static bool isLeapYearByDateTime(DateTime dateTime) {
        return isLeapYearByYear(dateTime.year);
      }
    
    1
    2
    3

    /// Return whether it is leap year.

    # /// 是否是闰年 传参 年

     static bool isLeapYearByYear(int year) {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
      }
    
    1
    2
    3

    /// is yesterday by millis.

    # /// 是否是昨天.

      static bool isYesterdayByMillis(int millis, int locMillis) {
        return isYesterday(DateTime.fromMillisecondsSinceEpoch(millis),
            DateTime.fromMillisecondsSinceEpoch(locMillis));
      }
    
    1
    2
    3
    4

    /// is yesterday by dateTime.

    # /// 是否是昨天.

      static bool isYesterday(DateTime dateTime, DateTime locDateTime) {
        if (yearIsEqual(dateTime, locDateTime)) {
          int spDay = getDayOfYear(locDateTime) - getDayOfYear(dateTime);
          return spDay == 1;
        } else {
          return ((locDateTime.year - dateTime.year == 1) &&
              dateTime.month == 12 &&
              locDateTime.month == 1 &&
              dateTime.day == 31 &&
              locDateTime.day == 1);
        }
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    /// get day of year.

    # /// 在今年的第几天.

      static int getDayOfYearByMillis(int millis, {bool isUtc = false}) {
        return getDayOfYear(
            DateTime.fromMillisecondsSinceEpoch(millis, isUtc: isUtc));
      }
    
    1
    2
    3
    4

    /// get day of year.

    # /// 在今年的第几天.

      static int getDayOfYear(DateTime dateTime) {
        int year = dateTime.year;
        int month = dateTime.month;
        int days = dateTime.day;
        for (int i = 1; i < month; i++) {
          days = days + (MONTH_DAY[i] ?? 0);
        }
        if (isLeapYearByYear(year) && month > 2) {
          days = days + 1;
        }
        return days;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    /// year is equal.

    # /// 是否同年.

     static bool yearIsEqualByMillis(int millis, int locMillis) {
        return yearIsEqual(DateTime.fromMillisecondsSinceEpoch(millis),
            DateTime.fromMillisecondsSinceEpoch(locMillis));
      }
    
      static bool isThisYear(int millis) {
        return yearIsEqual(
            DateTime.fromMillisecondsSinceEpoch(millis), DateTime.now());
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    /// year is equal.

    # /// 是否同年.

      static bool yearIsEqual(DateTime dateTime, DateTime locDateTime) {
        return dateTime.year == locDateTime.year;
      }
    
    1
    2
    3

    /// is today.

    # /// 是否是当天.

      static bool isToday(int milliseconds, {bool isUtc = false}) {
        if (milliseconds == 0) return false;
        DateTime old =
            DateTime.fromMillisecondsSinceEpoch(milliseconds, isUtc: isUtc);
        DateTime now = isUtc ? DateTime.now().toUtc() : DateTime.now().toLocal();
        return old.year == now.year && old.month == now.month && old.day == now.day;
      }
    
    1
    2
    3
    4
    5
    6
    7

    /// is Week.

    # /// 是否是本周.

      static bool isWeek(int milliseconds, {bool isUtc = false}) {
        if (milliseconds <= 0) {
          return false;
        }
        DateTime _old =
            DateTime.fromMillisecondsSinceEpoch(milliseconds, isUtc: isUtc);
        DateTime _now = isUtc ? DateTime.now().toUtc() : DateTime.now().toLocal();
        DateTime old =
            _now.millisecondsSinceEpoch > _old.millisecondsSinceEpoch ? _old : _now;
        DateTime now =
            _now.millisecondsSinceEpoch > _old.millisecondsSinceEpoch ? _now : _old;
        return (now.weekday >= old.weekday) &&
            (now.millisecondsSinceEpoch - old.millisecondsSinceEpoch <=
                7 * 24 * 60 * 60 * 1000);
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      static String getChatTime(int nanosecond) {
        int milliseconds = nanosecond ~/ (1000 * 1000);
        if (isToday(milliseconds)) {
          return formatDateMs(milliseconds, format: DataFormats.h_m);
        } else if (isYesterdayByMillis(milliseconds, getNowDateMs())) {
          return 'Yesterday ${formatDateMs(milliseconds, format: DataFormats.h_m)}';
        } else if (yearIsEqualByMillis(milliseconds, getNowDateMs())) {
          return formatDateMs(milliseconds, format: 'MM/dd');
        } else {
          return formatDateMs(milliseconds, format: 'yyyy/MM/dd');
        }
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # //获取一个月的最后一天是几号

    static int getLastDay(DateTime date) {
        var dateMonth = date.month;
        var month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
        var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        var fullYear = date.year;
        //判断二月份天数
        if (fullYear % 4 == 0 && (fullYear % 100 != 0 || fullYear % 400 == 0)) {
          daysInMonth[1] = 29;
        }
        var lastDay = daysInMonth[month.indexOf(dateMonth)];
        return lastDay;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # //时区 加8小时

      static String getDateTimeZoom(String? date) {
        if (date == null) return '';
        int time = getDateMsByTimeStr(date) ?? 0;
        if (time == 0) {
          return '';
        } else {
          time = time + (8 * 3600);
          var dateTime = getDateStrByMs(time);
    
      return dateTime ?? '';
    }
    
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    上次更新: 2022/12/11, 02:32:13
    时间 DateTime
    浮点 double 取整 保留小数

    ← 时间 DateTime 浮点 double 取整 保留小数→

    最近更新
    01
    Mac配置nginx+php
    08-23
    02
    p12文件的生成
    08-22
    03
    mac 程序安装失败解决
    08-18
    更多文章>
    Theme by Vdoing | Copyright © 2022-2023 Lucking | 粤ICP备2022078904号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式