현재시간 확인하기

Dart에서 시간 데이터를 다루기 위해서는 DateTime 을 사용하면 된다.

void main() {
  DateTime now = DateTime.now();
  print(now);
  print(now.year);
  print(now.month);
  print(now.day);
}
// 결과
2022-09-23 11:51:13.218
2022
9
23

특정 시간 환산하기

Duration을 활용하면 특정 값을 항목별로 환산할 수 있다.

무슨 말이냐면,

void main() {
  Duration duration = Duration(seconds: 60);
  print(duration);
  print(duration.inDays);
  print(duration.inHours);
  print(duration.inMinutes);
}
// 결과
0:01:00.000000
0
0
1

60초를 각각 하루로 나타냈을 때, 시간으로 나타냈을 때, 분으로 나타냈을 때를 확인할 수 있다.

60초는 1분이니까 .inMinutes 값에만 1이 찍혀있는 것을 확인할 수 있다.

특정 날짜(연, 월, 일) 선언하기

DateTime으로 특정 날짜를 지정할 수 있다.

void main() {
  DateTime specificDay = DateTime(2019, 11, 23);
  print(specificDay);
}
// 결과
2019-11-23 00:00:00.000

날짜 사이의 차이 구하기

다음과 같이 날짜와 날짜 사이의 차이를 구할 수 있다.

void main() {
  DateTime now = DateTime.now();
  DateTime specificDay = DateTime(2019, 11, 23);
  
  final difference = now.difference(specificDay);
  print(difference);
  print(difference.inDays);
  print(difference.inHours);
}
// 결과
29224:32:16.782000
1217
29224

현재 날짜와 2019년 11월 23일의 차이를 계산해보면,

일로는 1217일,

시간으로는 29224시간을 확인할 수 있다.

특정 날짜가 또 다른 날짜의 이후인지 아닌지 확인하기

.isAfter 함수를 사용하면 특정 날짜 또 다른 날짜의 이후인지를 확인할 수도 있다.

void main() {
  DateTime now = DateTime.now();
  DateTime specificDay = DateTime(2019, 11, 23);
  
  print(now.isAfter(specificDay));
}
// 결과
true

현재는 2019년보다 이후 이기 때문에 결과 값이 true인 것을 확인할 수 있다.

날짜 연산하기

Duration을 활용해 현재시간에 10시간 뒤의 시간을 구해보자.

void main() {
  DateTime now = DateTime.now();
  
  print(now.add(Duration(hours: 10)));
}
// 결과
2022-09-23 21:51:13.218

이전 날짜를 구할 수도 있다. 현재시간 기준 20초 전 시간을 구해보자.

void main() {
  DateTime now = DateTime.now();
  
  print(now.subtract(Duration(seconds: 20)));
}
// 결과
2022-09-23 11:50:53.218