Flutter 具有特定时间格式的时间前

Flutter 具有特定时间格式的时间前,flutter,dart,Flutter,Dart,我们如何转换特定的时间格式(“yyyy-MM-dd-HH-MM-ss”)来计算颤振中的时间?下面是我的android应用程序的代码,不过我正在试用使用Dart的Flitter。有人能在这里提供一个我们如何实现这一目标的指针吗 Date currentDate = Calendar.getInstance().getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", locale); sdf.setT

我们如何转换特定的时间格式(“yyyy-MM-dd-HH-MM-ss”)来计算颤振中的时间?下面是我的android应用程序的代码,不过我正在试用使用Dart的Flitter。有人能在这里提供一个我们如何实现这一目标的指针吗

Date currentDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", locale);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String dd = sdf.format(newsDate);
Date gmt = null;
try {
    gmt = sdf.parse(dd);
} catch (ParseException e) {
    e.printStackTrace();
}

long duration = currentDate.getTime() - gmt.getTime();

long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);
long diffInDays = TimeUnit.MILLISECONDS.toDays(duration);

我就是这样实现的:

Date currentDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", locale);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String dd = sdf.format(newsDate);
Date gmt = null;
try {
    gmt = sdf.parse(dd);
} catch (ParseException e) {
    e.printStackTrace();
}

long duration = currentDate.getTime() - gmt.getTime();

long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);
long diffInDays = TimeUnit.MILLISECONDS.toDays(duration);
String timeAgoSinceDate({bool numericDates = true}) {
  DateTime date = this.createdTime.toLocal();
  final date2 = DateTime.now().toLocal();
  final difference = date2.difference(date);

  if (difference.inSeconds < 5) {
    return 'Just now';
  } else if (difference.inSeconds <= 60) {
    return '${difference.inSeconds} seconds ago';
  } else if (difference.inMinutes <= 1) {
    return (numericDates) ? '1 minute ago' : 'A minute ago';
  } else if (difference.inMinutes <= 60) {
    return '${difference.inMinutes} minutes ago';
  } else if (difference.inHours <= 1) {
    return (numericDates) ? '1 hour ago' : 'An hour ago';
  } else if (difference.inHours <= 60) {
    return '${difference.inHours} hours ago';
  } else if (difference.inDays <= 1) {
    return (numericDates) ? '1 day ago' : 'Yesterday';
  } else if (difference.inDays <= 6) {
    return '${difference.inDays} days ago';
  } else if ((difference.inDays / 7).ceil() <= 1) {
    return (numericDates) ? '1 week ago' : 'Last week';
  } else if ((difference.inDays / 7).ceil() <= 4) {
    return '${(difference.inDays / 7).ceil()} weeks ago';
  } else if ((difference.inDays / 30).ceil() <= 1) {
    return (numericDates) ? '1 month ago' : 'Last month';
  } else if ((difference.inDays / 30).ceil() <= 30) {
    return '${(difference.inDays / 30).ceil()} months ago';
  } else if ((difference.inDays / 365).ceil() <= 1) {
    return (numericDates) ? '1 year ago' : 'Last year';
  }
  return '${(difference.inDays / 365).floor()} years ago';
}

另一方面,在Android应用程序中,考虑扔掉长期过时的、臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友,并添加到Android项目中,以便使用Java.Times、现代java日期和时间API。和你一起工作真是太好了。另外,格式化
newsDate
只是为了将其解析回来,这一点也让我不知所措。您将获得一个等效的
日期
,但不包含秒数。请参阅。