[flutter] 플러터에서 시간과 날짜를 변환하는 방법

플러터 앱을 개발하다 보면, 시간과 날짜를 변환해야 할 때가 종종 있습니다. 이 글에서는 플러터에서 시간과 날짜를 변환하는 여러 가지 방법을 살펴보겠습니다.

1. 시간과 날짜 형식 변환

플러터에서 시간과 날짜를 다른 형식으로 변환하려면 intl 패키지를 사용할 수 있습니다. 이 패키지를 이용하여 DateFormat 클래스를 활용하여 시간 및 날짜 형식을 변환할 수 있습니다.

import 'package:intl/intl.dart';

String formatDate(DateTime dateTime) {
  return DateFormat('yyyy-MM-dd').format(dateTime);
}

String formatTime(DateTime dateTime) {
  return DateFormat.jm().format(dateTime);
}

위의 예시에서 DateFormat 클래스를 사용하여 날짜는 ‘yyyy-MM-dd’ 형식으로, 시간은 오전/오후로 표시하는 형식으로 변환됩니다.

2. 타임존 변환

타임존을 변환하기 위해서는 timezone 패키지를 사용할 수 있습니다. 아래는 타임존을 변환하는 예시입니다.

import 'package:timezone/timezone.dart';

Future<DateTime> convertToBerlinTime(DateTime dateTime) async {
  return TZDateTime.from(dateTime, getLocation('Europe/Berlin'));
}

위의 예시에서 getTimeZone 함수로 베를린의 타임존을 가져와서, TZDateTime 클래스를 이용하여 입력된 시간을 베를린 시간으로 변환하고 있습니다.

3. Epoch 시간 변환

Epoch 시간을 변환하기 위해서는 기본적으로 플러터의 DateTime 클래스를 사용합니다. 아래는 Epoch 시간을 변환하는 예시입니다.

DateTime epochToDateTime(int secondsSinceEpoch) {
  return DateTime.fromMillisecondsSinceEpoch(secondsSinceEpoch * 1000);
}

int dateTimeToEpoch(DateTime dateTime) {
  return dateTime.millisecondsSinceEpoch ~/ 1000;
}

위의 예시에서 Epoch 시간은 초 단위로 주어지므로, 이를 밀리초 단위로 맞춰주고 DateTime.fromMillisecondsSinceEpoch를 통해 변환합니다.

마무리

시간과 날짜를 변환하는 것은 앱 개발에서 매우 중요한 일입니다. 플러터에서는 intl, timezone, 그리고 기본적인 DateTime 클래스를 활용하여 다양한 시간과 날짜 변환 작업을 수행할 수 있습니다. 각 상황에 맞게 적절한 방법을 선택하여 사용하시면 됩니다.

위에서 소개한 내용은 참고용으로, 실제 앱에서의 사용 시 상황에 따라 적절히 적용해주어야 합니다.

참고 자료:

이상으로 플러터에서 시간과 날짜를 변환하는 방법에 대해 알아보았습니다. 감사합니다.