728x90
외부에서 UTC 시간을 받아와서 사용할 때 일반적으로 ISO8601 형식으로 주지만 때때로는
"2023-08-08T06:06:29" 이렇게 Z가 붙지 않거나 "2023-08-08 06:06:29" 이런식으로 받아오는 경우가 있습니다.
이런 시간을 toUtc()를 해서 Utc시간으로 바꾸게 된다면 사용 국가 표준시 만큼 추가로 계산됩니다.
예로 들어 한국은 UTC+9 한국 표준시를 가지고 있기 때문에 "2023-08-08T06:06:29" 해당 DateTime을 toUtc()하게 된다면 2023-08-07 21:06:29.000Z 이렇게 바뀌는 현상이 생깁니다.
받아온 UTC시간을 그대로 UTC로 변환하려면 아래 코드를 이용하면 됩니다.
Z가 붙으면 dart에서는 UTC시간으로 인식합니다.
DateTime parseUTCDateTime(String value) {
List<String> parts =
value.contains('T') ? value.split('T') : value.split(' ');
if (parts.length == 2) {
final timePart = parts[1];
if (timePart.endsWith('Z') ||
timePart.contains('+') ||
timePart.contains('-')) {
return DateTime.parse(value);
} else {
return DateTime.parse('${value}Z');
}
}
return DateTime.parse(value);
}
'Flutter > 기본' 카테고리의 다른 글
[Flutter] Isolate 설명과 사용방법 (0) | 2024.05.28 |
---|---|
[Flutter] 세 자리마다 쉼표가 있는 TextField 구현하기 (0) | 2024.05.17 |
[Flutter] TabBar Customizing Design 모음 (0) | 2024.04.26 |
[Flutter] 디바이스 설정 언어 가져오기 (0) | 2024.04.18 |
[Flutter] 프로덕션 환경 vs 개발 환경 구별 방법 (0) | 2024.03.28 |