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();
}
}
flutter 时间戳转日期,转年龄
最新推荐文章于 2024-04-16 14:55:20 发布