학습
Dart 날짜 및 시간 처리
Dart 날짜 및 시간 처리 — 중급
날짜 및 시간 처리
1. 도입 (왜 배워야 하는가)
Dart에서 날짜 및 시간 처리는 소프트웨어 개발에서 매우 중요한 부분입니다. 특히, 데이터베이스에서의 날짜 기록, 사용자 인터페이스에서의 시간 표시, 예약 시스템, 쇼핑몰의 장바구니 만료 시간 등 다양한 상황에서 날짜와 시간을 정확하게 처리하는 것이 필수적입니다. 만약 이 부분을 소홀히 한다면, 예를 들어 예약 시스템에서 사용자가 잘못된 날짜를 입력하거나, 장바구니가 만료되는 시간을 계산하지 못하면 사용자가 혼란을 겪고 서비스에 대한 신뢰를 잃게 됩니다.
2. 핵심 개념 설명
Dart에서는 날짜와 시간을 다루기 위해 DateTime 클래스를 사용합니다. 이 클래스는 날짜 및 시간을 표현하고 조작하는 다양한 메소드를 제공합니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| DateTime | 날짜와 시간을 표현하는 클래스 |
| UTC | 협정 세계시 (Universal Time Coordinated) |
| Local Time | 사용자의 현지 시간 |
| Timestamp | 특정 시점을 나타내는 정수 |
실생활 비유로 설명하자면, 날짜와 시간은 우리의 일상생활에서 시간 관리와 일정 조율을 위해 필수적입니다. 마치 일정을 관리하기 위해 달력을 사용하는 것처럼, 프로그래밍에서도 날짜와 시간을 효율적으로 관리해야 합니다.
3. 기본 코드 예제
아래는 기본적인 DateTime 객체를 생성하고 현재 시간을 출력하는 간단한 코드입니다.
void main() {
// 현재 날짜 및 시간 가져오기
DateTime now = DateTime.now();
// 현재 시간 출력
print("현재 시간: $now");
}
실행 결과:
현재 시간: 2023-10-04 14:30:45.123456
DateTime.now()메소드를 호출하여 현재 날짜와 시간을 가져옵니다.print()함수를 사용해 현재 시간을 출력합니다.
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 만료 시간 계산
쇼핑몰에서 장바구니에 있는 제품은 일정 시간이 지나면 만료되도록 설정할 수 있습니다.
void main() {
DateTime now = DateTime.now();
DateTime expiryTime = now.add(Duration(hours: 2)); // 2시간 후 만료
print("장바구니 만료 시간: $expiryTime");
}
실행 결과:
장바구니 만료 시간: 2023-10-04 16:30:45.123456
Duration 클래스를 사용하여 2시간 후의 시간을 계산합니다.add() 메소드를 사용해 현재 시간에 2시간을 더합니다.예제 2: 특정 날짜 생성
특정 날짜와 시간을 생성하는 방법입니다.
void main() {
DateTime specificDate = DateTime(2023, 10, 31, 18, 0); // 2023년 10월 31일 18시
print("특정 날짜: $specificDate");
}
실행 결과:
특정 날짜: 2023-10-31 18:00:00.000
DateTime 생성자를 사용하여 특정 날짜를 생성합니다.5. 흔한 실수와 주의사항
실수 1: 시간대 설정 실패
// 잘못된 코드
DateTime wrongDate = DateTime.parse("2023-10-04T14:30:00");
print("잘못된 시간대: $wrongDate");
올바른 코드
// 올바른 코드
DateTime localDate = DateTime.parse("2023-10-04T14:30:00Z").toLocal();
print("올바른 시간대: $localDate");
toLocal() 메소드를 사용하여 현지 시간으로 변환합니다.실수 2: 날짜 계산 시 부정확성
// 잘못된 코드
DateTime incorrectExpiry = DateTime.now().add(Duration(days: 30));
print("부정확한 만료일: $incorrectExpiry");
올바른 코드
// 올바른 코드
DateTime correctExpiry = DateTime(now.year, now.month + 1, 1).subtract(Duration(days: 1));
print("정확한 만료일: $correctExpiry");
6. 정리
DateTime 클래스는 날짜 및 시간 처리를 위한 기본 클래스입니다.Duration 클래스를 사용하여 시간 간격을 쉽게 계산할 수 있습니다.다음에 학습하면 좋은 주제: