[flutter] 플러터에서 시간을 시간대로 변환하는 방법

플러터(Flutter) 개발 중 다른 시간대로 시간을 변환하는 것은 종종 필요합니다. 이를 위해서는 내장된 Dart 언어의 DateTime 클래스와 intl 패키지를 사용할 수 있습니다. 이 블로그 포스트에서는 DateTime을 다른 시간대로 변환하는 방법을 살펴보겠습니다.

DateTime 클래스를 사용한 시간 변환

Dart의 DateTime 클래스를 사용하여 특정 시간대로 DateTime 개체를 변환할 수 있습니다.

예를 들어, 현재 시간을 기준으로 특정 시간대(예: 뉴욕, 도쿄)에 맞는 시간을 확인하려면 다음과 같이 할 수 있습니다.

import 'package:intl/intl.dart';

void main() {
  DateTime now = DateTime.now();
  DateTime newyorkTime = now.toUtc().subtract(Duration(hours: 5));
  DateTime tokyoTime = now.toUtc().add(Duration(hours: 9));

  print('현재 시간: $now');
  print('뉴욕 시간: ${DateFormat('yyyy-MM-dd HH:mm').format(newyorkTime)}');
  print('도쿄 시간: ${DateFormat('yyyy-MM-dd HH:mm').format(tokyoTime)}');
}

이 코드에서는 toUtc() 함수를 사용하여 UTC 시간으로 변환한 후, subtractadd 함수를 사용하여 특정 시간대에 맞게 시간을 조정합니다.

intl 패키지를 사용한 시간대 변환

intl 패키지를 사용하면 DateTime 객체를 특정 시간대에 맞게 변환할 수 있습니다.

import 'package:intl/intl.dart';

void main() {
  DateTime now = DateTime.now();
  String formattedNewYorkTime = DateFormat('yyyy-MM-dd HH:mm', 'en_US').format(now.toUtc().subtract(Duration(hours: 5)));
  String formattedTokyoTime = DateFormat('yyyy-MM-dd HH:mm', 'en_US').format(now.toUtc().add(Duration(hours: 9)));

  print('현재 시간: $now');
  print('뉴욕 시간: $formattedNewYorkTime');
  print('도쿄 시간: $formattedTokyoTime');
}

intl 패키지를 사용하여 DateTime 객체를 특정 시간대의 문자열로 변환할 수 있습니다.

결론

플러터에서 시간을 다른 시간대로 변환하는 방법에 대해 알아보았습니다. DateTime 클래스와 intl 패키지를 활용하여 시간대 변환을 수월하게 할 수 있습니다.

플러터 DateTime 클래스에 대한 자세한 내용은 공식 문서를 참조하십시오.

즐거운 플러터 개발 되시길!