Flutter/기본
[Flutter] DateTime 비교하기
주톨
2023. 7. 12. 17:36
728x90
1. isAfter, isBefore
void main() {
final String date1 = "2023-07-24 17:04:32.897";
final String date2 = "2023-07-27 17:04:32.897";
final bool a = DateTime.parse(date2).isAfter(DateTime.parse(date1));
final bool b = DateTime.parse(date1).isAfter(DateTime.parse(date2));
print("date2가 data1보다 후의 날짜인가요? ${a}");
print("data1이 data2보다 후의 날짜인가요? ${b}");
final bool c = DateTime.parse(date2).isBefore(DateTime.parse(date1));
final bool d = DateTime.parse(date1).isBefore(DateTime.parse(date2));
print("date2가 data1보다 이전 날짜인가요? ${c}");
print("data1이 data2보다 이전 날짜인가요? ${d}");
}
//출력
date2가 data1보다 후의 날짜인가요? true
data1이 data2보다 후의 날짜인가요? false
date2가 data1보다 이전 날짜인가요? false
data1이 data2보다 이전 날짜인가요? true
isAfter, isBefore는 DateTime클래스의 메서드입니다.
isAfter ~후의
isAfter는 왼쪽(비교날짜)이 오른쪽(비교대상날짜) 보다 후의 날짜이면 true를 반환하고 아니면 false를 반환합니다.
ex)
2023-07-24.isAfter(2023-07-27) => false
2023-07-27.isAfter(2023-07-24) => true
isBefore ~이전의
isBefore는 왼쪽(비교날짜)이 오른쪽(비교대상날짜) 보다 이전의 날짜이면 true를 반환하고 아니면 false를 반환합니다.
ex)
2023-07-24.isBefore(2023-07-27) => true
2023-07-27.isBefore(2023-07-24) => false
2. CompareTo
void main() {
final a = "2023-01-31T16:32:13.848";
final b = DateTime.parse(a);
final c = DateTime(b.year, b.month+1, b.day, b.hour, b.minute, b.second, b.millisecond,);
final compareDate1 = DateTime.parse("2023-04-03T16:32:13.848");
final compareDate2 = DateTime.parse("2023-03-01T16:32:13.848");
final compareDate3 = DateTime.parse("2023-03-03T16:32:13.848");
print("한달후 date : $c");
print("비교 date가 크면 ${c.compareTo(compareDate1)}");
print("비교 date가 작으면 ${c.compareTo(compareDate2)}");
print("비교 date와 같으면 ${c.compareTo(compareDate3)}");
}
///출력
한달후 date : 2023-03-03 16:32:13.848
비교 date가 크면 -1
비교 date가 작으면 1
비교 date와 같으면 0
compareTo 기준으로
왼쪽이 오른쪽보다 작으면 -1,
왼쪽이 오른쪽보다 크면 1,
왼쪽이랑 오른쪽이랑 같으면 0
을 리턴해줍니다.