flutter 时间戳转日期,转年龄

import 'dart:developer';
class StringUtils {

  //时间戳转年龄
  static String getAge(var timestamp){
    //timestamp 为毫秒时间戳
    var brt = DateTime.fromMicrosecondsSinceEpoch(timestamp*1000);//将时间戳转化为2020-03-12 22:38:29.627
    int age = 0;
    DateTime dateTime = DateTime.now();

    if (dateTime.isBefore(brt)) { //出生日期晚于当前时间,无法计算
      return '出生日期不正確';
    }
    int yearNow = dateTime.year;  //当前年份
    int monthNow = dateTime.month;  //当前月份
    int dayOfMonthNow = dateTime.day; //当前日期

    int yearBirth = brt.year;
    int monthBirth = brt.month;
    int dayOfMonthBirth = brt.day;
    age = yearNow - yearBirth;   //计算整岁数
    if (monthNow <= monthBirth) {
      if (monthNow == monthBirth) {
        if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一
      } else {
        age--;//当前月份在生日之前,年龄减一
      }
    }
    return age.toString();
  }

  //时间戳转年龄
  static int getAgeByTimeStamp(var age){
    DateTime dateTime = DateTime.now();
    int yearNow = dateTime.year;  //当前年份
    int yearBirth;
    yearBirth = yearNow - age;
    String _time = "${yearBirth}-07-25 14:12:59.055365";//注意格式否则在DateTime.parse()时会报错
    var _strtimes = DateTime.parse(_time);//首先先将字符串格式的时间转为DateTime类型,因为millisecondsSinceEpoch方法转换要求为该格式
    var _intendtime = _strtimes .millisecondsSinceEpoch;//方法一

    return _intendtime;
  }

  //日期转年龄
  static String getAgeByBri(DateTime brt){
    int age = 0;
    DateTime dateTime = DateTime.now();
    if (dateTime.isBefore(brt)) { //出生日期晚于当前时间,无法计算
      return '出生日期不正確';
    }
    int yearNow = dateTime.year;  //当前年份
    int monthNow = dateTime.month;  //当前月份
    int dayOfMonthNow = dateTime.day; //当前日期

    int yearBirth = brt.year;
    int monthBirth = brt.month;
    int dayOfMonthBirth = brt.day;
    age = yearNow - yearBirth;   //计算整岁数
    if (monthNow <= monthBirth) {
      if (monthNow == monthBirth) {
        if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一
      } else {
        age--;//当前月份在生日之前,年龄减一
      }
    }
    return age.toString();
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值