티스토리 뷰

iOS

[iOS] DatePicker, DateFormatter

Peppo 2021. 11. 25. 07:29
728x90

앱을 사용하다보면 시간을 활용해서 알람을 보내거나 여러가지 기능을 구현할수 있는데,

이 글에서는 날짜를 다루는 방법 에 대해 알아보려고 합니다.

Date()를 선언하게 되면

2021-09-25 06:10:50 +0000

이런식으로 나오게 되는데
아래와 같은 사진으로 변경해봅시다!!

먼저 시간을 조절할수있는 DatePicker에 대해 알아보도록 하죠.

DatePicker

1. ViewController 추가.

(저는 `DateViewController`로 이름을 지었습니다.)

2. Objects Library (Shift + cmd + L)에 Datepicker 추가.

3. (선택) 이쪽에서 DatePicker에서 원하는 디자인을 선택할수 있습니다.

저는 시간만 변경하는걸로 설정했습니다.
Preferred Style: Wheels
Mode: Time

4. Ctrl 누른상태로 Datepicker -> DateViewController.swift로 드래그 -> @IBAction 설정

5. run으로 시뮬레이터 실행후, print로 값이 바뀔때 시간 호출하는것 확인.

시간을 받아오는것 까진 성공했습니다.
다음은 DateFormatter()로 날짜표시를 해봅시다!

DateFormatter()

먼저 변환하려는 형태로 지정을 해줘야 합니다.
아까 IBAction에 코드를 작성할게요.

@IBAction func changedDateValue(_ sender: UIDatePicker) {

        let formatter = DateFormatter()
        // 한국시간으로 표시
        formatter.locale = Locale(identifier: "ko")
        // 시간대 표시
        formatter.dateFormat = "a HH:mm"
        let formattedDate = formatter.string(from: sender.date)

        print("formattedDate --> \(formattedDate)")
    }

결과

저같은 경우는 오전, 오후 시간대만 출력되게 해놓았는데요.
여러가지 변형 방법을 아래 예제를 보시고 본인에게 맞는 DateFormat을 하시기 바랍니다 :)

예제

let currentDate = Date() // 현재 날짜 [ex) 2021-09-25 06:49:50 +0000]
let formatter = DateFormatter()
// 연도-월-일 오전,오후 시간:분 으로 표기.
dateFormatter.dateFormat = "yyyy-MM-dd a HH:mm"

// currentDate의 날짜를 string으로 변경
let formattedDate = formatter.string(from: currentDate) // 2021-09-25 오후 15:49

이외의 여러가지 예가 있습니다.
Wednesday, Sep 12, 2018           --> EEEE, MMM d, yyyy
09/12/2018                        --> MM/dd/yyyy
09-12-2018 14:11                  --> MM-dd-yyyy HH:mm
Sep 12, 2:11 PM                   --> MMM d, h:mm a
September 2018                    --> MMMM yyyy
Sep 12, 2018                      --> MMM d, yyyy
Wed, 12 Sep 2018 14:11:54 +0000   --> E, d MMM yyyy HH:mm:ss Z
2018-09-12T14:11:54+0000          --> yyyy-MM-dd'T'HH:mm:ssZ
12.09.18                          --> dd.MM.yy
10:41:02.112                      --> HH:mm:ss.SSS

참고 사이트

formestory
iOS Developer
0miming

728x90