⭐️ 개발/플러터
[이론] DateTime 및 Duration
짱구러버
2022. 11. 5. 20:40
728x90
들어가기 앞서...
이번 게시글에는 Dart 언어를 DartPad 페이지에서 작업을 해보고 결과물을 게시글에 적겠다!
DartPad
dartpad.dev
이 링크를 클릭해서 같이 코딩해보고 결과물을 출력해보자!
주의 깊게 봐야하는 점...
- 원하는 시점(?) 으로 출력을 할 수 있다.
- 시간을 더하고 빼서 출력할 수 있다.
본문으로...
- 시간관련해서 알고 있는 점은 DateTime.now() 이다.
void main() {
DateTime now = DateTime.now();
// 현재 날짜와 시간, 분, 초, 밀리세컨드
print(now); // 2022-11-07 11:14:59.687
// 현재 년도
print(now.year); // 2022
// 현재 월
print(now.month); // 11
// 현재 날
print(now.day); // 7
// 현재 시간
print(now.hour); // 11
// 현재 분
print(now.minute); // 14
// 현재 초
print(now.second); // 59
// 현재 밀리세컨드
print(now.millisecond); //687
}
- 이번에는 Duration 을 배울것이다.
DateTime 은 특정 날짜이고, Duration 기간이다.
60초로 선언을 하고 print로 결과를 출력했다.
60초로 지정을 했기에 시간과 분을 print 했을떄 0으로 나오는 것을 볼 수 있다.
void main() {
// Duratio() 은 원하는 값을 넣을 수 있다.
Duration duration = Duration(seconds:60);
// 시, 분, 초
print(duration); // 0:01:00.000000
// 날짜
print(duration.inDays); // 0
// 시간
print(duration.inHours); // 0
// 분
print(duration.inMinutes); // 1
// 초
print(duration.inSeconds); // 60
// 밀리초
print(duration.inMicroseconds); // 60000000
}
- DateTime() 으로 특정 날짜를 정해보자!
순서는 지켜줘야한다. 연도, 월, 날, 시간, 분, 초, 밀리초 (년도는 무조건 필수!)
그리고 조금 생소할 수 있는 것이 now.isAfter(), now.isBefore(), 특정 기간 더하기 및 뺴기 이다.
now.isAfter(특정기간); 설명 )
➡️ 특정 기간이 현재 시간보다 이후 인지 아닌지! boolean 값으로 결과를 출력한다.
now.isBefore(특정기간); 설명)
➡️ 특정 기간이 현재 시간보다 이전 인지 아닌지! boolean 값으로 결과를 출력한다.
now.add(Duration(특정 값)); 설명)
➡️ 현재 시간에서 특정 값을 더할 수 있다. 특정 값에는 년도, 월, 날, 시간, 분, 초, 밀리초 를 넣을 수 있다.
now.subtract(Duration(특정 값)); 설명)
➡️ 현재 시간에서 특정 값을 뺄 수 있다. 특정 값에는 년도, 월, 날, 시간, 분, 초, 밀리초 를 넣을 수 있다.
void main(){
DateTime now = DateTime.now();
Duration duration = Duration(seconds:60);
DateTime specificDay = DateTime(
2020,
11,
28
);
print(specificDay); // 2020-11-28 00:00:00.000
// 현재 날짜와 내가 선언한 날짜와의 차이점
final difference = now.difference(specificDay);
// 차이 시간, 분, 초, 밀리초
print(difference); // 17027:30:11.187000
// 차이 날짜
print(difference.inDays); // 709
// 차이 시간
print(difference.inHours); // 17027
// 차이 분
print(difference.inMinutes); // 1021650
// 이후인지 아닌지
print(now.isAfter(specificDay)); // true
// 이전인지 아닌지
print(now.isBefore(specificDay)); // false
// 현재 시간
print(now); // 2022-11-07 11:30:11.187
// 특정 기간 더하기
now.add(Duration(hours:10)); // 2022-11-07 21:30:11.187
// 특정 기간 빼기
now.subtract(Duration(seconds:20)); // 2022-11-07 11:29:51.187
}
끝으로...
- now 현재 시간와 duration 특정기간에 대한 사용법을 알 수 있었다!
- 특정기간을 지정해 더하고 뺴고 이전인지 이후인지에 대한 값을 출력할 수 있다!
- 원하는 시점(?) 으로 결과를 출력할 수 있다!

728x90