본문 바로가기

Flutter-플러터/플러터 공부

캘린더 쓰기전에 DateTime yyyymmdd로 만드는 작업

반응형

 

 

현재 하루지출을 만들면서 히트맵 캘린더 패키지를 사용하고 있다. 

그래서 시간 관련 값을 사용해야 한다. 아래 코드를 참고하였다. 아니 그대로 사용했다. 

 

https://github.com/mitchkoko/HabitTrackerFlutter

 

GitHub - mitchkoko/HabitTrackerFlutter

Contribute to mitchkoko/HabitTrackerFlutter development by creating an account on GitHub.

github.com

 

오늘 날짜를 yyyymmdd로 만들고 

yyyymmdd를 DateTime 객체로 만들고 그것을 다시 yyyymmdd로 변환하는 코드이다. 

 

이 번잡스러운 수고를 해야 하는 이유가 

시간은 단순히 2023년 12월 18일 이렇게 표현되는게 아니라 

2023년 12월 18일 오후 5시 30분 12초 이렇게 진행되기 때문이다. 

 

그래서 오늘 시간을 정확히 yyyymmdd로 바꿔서 관리하면 한결 편하다.

 

 

 

 

// 오늘 날짜를 yyyymmdd 로 바꾸는 작업
String todaysDateFormatted() {
 //오늘
  var dateTimeObject = DateTime.now();

  //year => yyyy
  String year = dateTimeObject.year.toString();

  //month =>mm
  String month = dateTimeObject.month.toString();
  if (month.length == 1) {
    month = '0$month';
  }

  //day=>dd
  String day = dateTimeObject.day.toString();
  if (day.length == 1) {
    day = '0$day';
  }

  //마지막 합체
  String yyyymmdd = year + month + day;

  return yyyymmdd;
}

//위에 yyyymmdd를 DateTime 현재 시간으로 적용시키는 작업 
DateTime createDateTimeObject(String yyyymmdd) {
  int yyyy = int.parse(yyyymmdd.substring(0, 4));
  int mm = int.parse(yyyymmdd.substring(4, 6));
  int dd = int.parse(yyyymmdd.substring(6, 8));

  DateTime dateTimeObject = DateTime(yyyy, mm, dd);
  return dateTimeObject;
}

//위 DateTime을 다시 yyyymmdd로 하는 작업 
String convertDateTimeToString(DateTime dateTime) {
  // year in the format yyyy
  String year = dateTime.year.toString();

 
  String month = dateTime.month.toString();
  if (month.length == 1) {
    month = '0$month';
  }


  String day = dateTime.day.toString();
  if (day.length == 1) {
    day = '0$day';
  }

  
  String yyyymmdd = year + month + day;

  return yyyymmdd;
}
728x90
반응형