반응형
현재 하루지출을 만들면서 히트맵 캘린더 패키지를 사용하고 있다.
그래서 시간 관련 값을 사용해야 한다. 아래 코드를 참고하였다. 아니 그대로 사용했다.
https://github.com/mitchkoko/HabitTrackerFlutter
오늘 날짜를 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
반응형
'Flutter-플러터 > 플러터 공부' 카테고리의 다른 글
Flutter : timeago 를 쓰는 방법 (0) | 2023.01.31 |
---|---|
Flutter 예외 처리 (0) | 2023.01.30 |
flutter heatmap package (0) | 2023.01.25 |
안드로이드 스튜디오 업데이트 후 오류 :Unable to find bundled Java version (0) | 2023.01.23 |
flutter radio 버튼 사용하기 (0) | 2023.01.14 |