Flutter将时间字符串转为在xxx之前(类似于微信格式)

Posted HackShendi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter将时间字符串转为在xxx之前(类似于微信格式)相关的知识,希望对你有一定的参考价值。

hello,I’m Shendi 最近写 Flutter 的时候找不到日期转换的,于是自己手写了个,在这里贴出来

/// 将时间字符串转换成在 xxx 之前的格式
/// author Shendi
String timeToBefore(String time) 
  DateTime dt = DateTime.parse(time);

  int ms = DateTime.now().millisecondsSinceEpoch - dt.millisecondsSinceEpoch;

  // 如果是今天,则直接标出时间
  if (ms <= 86400000) 
    String hour = dt.hour < 10 ? 0.toString() + dt.hour.toString() : dt.hour.toString();
    String second = dt.second < 10 ? 0.toString() + dt.second.toString() : dt.second.toString();
    return hour + ":" + second;
   else if (ms <= 172800000) 
    return "昨天";
   else if (ms <= 259200000) 
    return "前天";
   else if (ms <= 604800000) 
    // 七天以内
    switch (dt.weekday) 
      case 1: return "星期一";
      case 2: return "星期二";
      case 3: return "星期三";
      case 4: return "星期四";
      case 5: return "星期五";
      case 6: return "星期六";
      case 7: return "星期日";
      default: return "未知日期";
    
   else 
    String month = dt.month < 10 ? 0.toString() + dt.month.toString() : dt.month.toString();
    String day = dt.day < 10 ? 0.toString() + dt.day.toString() : dt.day.toString();

    // 直接年月日
    return dt.year.toString() + "-" + month + "-" + day;
  

以上是关于Flutter将时间字符串转为在xxx之前(类似于微信格式)的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将 JSON 转换为类似于 android 的 POJO(对象)

timeago.js-时间显示插件

如何在 Flutter 中将容器堆叠在键盘上,类似于聊天中的 WhatsApp“更多”部分

在 Flutter for Web 应用程序中嵌入网页作为 Widget(类似于 iframe)

android 将时间戳转为代表"距现在多久之前"的字符串

Flutter之Flutter-Redux框架源码解析