date_util.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:intl/intl.dart';
  2. class DateUtil {
  3. DateUtil._();
  4. static String fromMillisecondsSinceEpoch(String format, int endTimestamp) {
  5. final date = DateTime.fromMillisecondsSinceEpoch(endTimestamp);
  6. return DateFormat(format).format(date);
  7. }
  8. static DateTime getNow({Duration? subtract}) {
  9. if (subtract == null) {
  10. return DateTime.now();
  11. } else {
  12. return DateTime.now().subtract(subtract);
  13. }
  14. }
  15. static String formatDateTime(DateTime dateTime, String format) {
  16. return DateFormat(format).format(dateTime);
  17. }
  18. //2个时间之差是否超过指定的时间范围,负值直接返回false
  19. static bool isTimeRangeExceed(
  20. DateTime startTime, DateTime endTime, Duration duration) {
  21. final diff = endTime.difference(startTime);
  22. return diff.isNegative ? true : diff > duration;
  23. }
  24. static bool isTimeIntRangeExceed(int time, int time2, Duration duration) {
  25. final diff = time2 - time;
  26. return diff.isNegative
  27. ? diff.abs() > duration.inSeconds
  28. : diff > duration.inSeconds;
  29. }
  30. /// 获取当天起始时间戳(毫秒)
  31. static DateTime getStartOfDayTimestamp(DateTime date) {
  32. return DateTime(date.year, date.month, date.day);
  33. }
  34. /// 获取当天结束时间戳(毫秒)
  35. static DateTime getEndOfDayTimestamp(DateTime date) {
  36. return DateTime(date.year, date.month, date.day)
  37. .add(Duration(days: 1))
  38. .subtract(Duration(milliseconds: 1));
  39. }
  40. }
  41. extension DateTimeExt on DateTime {
  42. String format(String format) {
  43. return DateFormat(format).format(this);
  44. }
  45. }