⭐️ 개발/플러터

[이론] DateTime 및 Duration

짱구러버 2022. 11. 5. 20:40
728x90

들어가기 앞서...

이번 게시글에는 Dart 언어를 DartPad 페이지에서 작업을 해보고 결과물을 게시글에 적겠다!

https://dartpad.dev/? 

 

DartPad

 

dartpad.dev

이 링크를 클릭해서 같이 코딩해보고 결과물을 출력해보자!

 

주의 깊게 봐야하는 점...

  1. 원하는 시점(?) 으로 출력을 할 수 있다. 
  2. 시간을 더하고 빼서 출력할 수 있다.

본문으로...

  • 시간관련해서 알고 있는 점은 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
}

 


끝으로...

  1. now 현재 시간와 duration 특정기간에 대한 사용법을 알 수 있었다!
  2. 특정기간을 지정해 더하고 뺴고 이전인지 이후인지에 대한 값을 출력할 수 있다!
  3. 원하는 시점(?) 으로 결과를 출력할 수 있다!

 

 

728x90