formatTimeline static method
String
formatTimeline(
- int timestamp, {
- bool alwaysShowDetail = false,
- String languageCode = 'zh',
})
Implementation
static String formatTimeline(int timestamp, {bool alwaysShowDetail = false, String languageCode = 'zh'}) {
var date = DateTime.fromMillisecondsSinceEpoch(timestamp);
var today = DateTime.now();
var standardDate = DateTime(today.year, today.month, today.day, 23, 59, 59);
// The incoming date is compared with today's 23:59:59
Duration diff = standardDate.difference(date);
if (diff < const Duration(days: 1)) {
return _format('HH:mm:ss', date);
}
if (diff >= const Duration(days: 1) && diff < const Duration(days: 2)) {
if (languageCode == 'en') {
return 'Yesterday ' + _format('HH:mm:ss', date);
} else {
return _format('昨天 HH:mm:ss', date);
}
}
if (date.year == today.year) {
if (languageCode == 'en') {
return _format((alwaysShowDetail ? 'MM/dd HH:mm:ss' : 'MM/dd'), date);
} else {
return _format((alwaysShowDetail ? 'MM月dd日 HH:mm:ss' : 'MM月dd日'), date);
}
} else {
if (languageCode == 'en') {
return _format((alwaysShowDetail ? 'MM/dd/yyyy HH:mm:ss' : 'MM/dd/yyyy'), date);
} else {
return _format((alwaysShowDetail ? 'yyyy年MM月dd日 HH:mm:ss' : 'yyyy年MM月dd日'), date);
}
}
}