UIDatePicker , DateFormatter

이하연·2021년 9월 16일
0

Boostcourse

목록 보기
14/20

UIDatePicker


Date Picker는 날짜 및 시간을 입력하는 컨트롤

Date Picker를 이용하여 특정 시점의 날짜와 시간 또는 시간 간격을 입력할 수 있다.

Date picker를 인터페이스에 추가하기

Date picker에 액션 메서드 연결하기

Date Picker의 주요 인터페이스 빌더 속성

  • Mode: Date picker의 모드를 설정합니다. 코드상으로 datePickerMode 프로퍼티를 사용하여 이 값에 접근할 수 있습니다.
  • Locale: Date picker에 사용될 로케일입니다. 코드상으로 locale 프로퍼티를 통해 이 값에 접근할 수 있습니다.
  • Interval: 현재 선택된 모드의 분 간격을 나타냅니다. 선택한 값은 60의 제수여야합니다. minnuteInterval프로퍼티를 통해 이 값에 접근할 수 있습니다.
  • Date: Date picker가 처음 보여주게 될 날짜를 설정할 수 있습니다. 기본값은 현재 날짜로 설정되어 있습니다. date프로퍼티를 통해 접근할 수 있습니다.
  • Constraints: Date 하단의 Minimum Date와 MaximumDate를 통해 Date picker가 보여줄 날짜의 범위를 설정할 수 있습니다. minimumDatemaximumDate 프로퍼티를 통해 설정할 수 있습니다.
  • Timer: 카운트다운 타이머 모드에서 date picker의 표시되는 초기값입니다. 값은 초 단위로 계산되지만 보이는 것은 분 단위로 표시됩니다. countDownDuration 프로퍼티를 통해 이 값에 접근할 수 있습니다.

UIDatePicker 클래스의 주요 프로퍼티

  • var datePickerMode: UIDatePickerMode: Date picker의 모드를 결정합니다.
    • 기본값은 dateAndTime입니다.
    • timedatedateAndTimecountDownTimer 네가지 모드를 설정할 수 있습니다.
  • var date: Date: date picker에 보여지게 될 날짜입니다.
  • var calendar: Calendar!: date picker에 사용되는 캘린더입니다.
  • var locale: Locale?: date picker에서 사용하는 로케일입니다.
  • var timeZone: TimeZone?: date picker에서 표시된 날짜에 반영된 시간대입니다.
  • var maximumDate: Date?: date picker에서 보여줄 수 있는 최대 날짜입니다.
  • var minimumDate: Date?: date picker에서 보여줄 수 있는 최소 날짜입니다.
  • minuteInterval: Int: date picker에서 분을 표시하는 간격입니다. 기본값과 최솟값은 1이고 최댓값은 30입니다.
  • var countDownDuration: TimeInterval: date picker의 모드가 countDownTimer로 설정될 경우 date picker에 표시되는 초깃값입니다.

UIDatePicker 클래스의 주요 메서드

  • func setDate(Date, animated: Bool): date picker에 처음 표시할 날짜를 설정

DateFormatter

날짜와 텍스트 표현 간의 변환을 할 수 있게 해줍니다.

이를 활용하여 날짜와 시간을 다양한 방식으로 출력하거나 출력된 날짜 및 시간에 대한 문자열을 읽어올 수 있다.

DateFormatter의 인스턴스는 Date 객체의 문자열 표현을 생성하고, 날짜 및 시간의 텍스트 표현을 Date 객체로 변환합니다.

사용자 날짜 및 시간 표현

  • dateStyle
  • timeStyle
  • setLocalizeDateFormatFromTemplate(_ :)

고정 형식 날짜 표현

  • dateFormat 프로퍼티를 특정 포맷 문자열로 설정

DateFormatter의 주요 프로퍼티와 메서드

  • func date(from: String): 주어진 문자열을 Date 객체(날짜와 시간)로 변환하여 반환합니다.
  • func string(from: Date): 주어진 Date 객체를 문자열로 변환하여 반환합니다.
  • func setLocalizedDateFormatFromTemplate(String): 지정된 로케일을 사용하여 날짜 형식을 설정합니다.
  • var dateStyle: DateFormatter.Style: DateFormatter의 날짜 형식입니다.
  • var timeStyle: DateFormatter.Style: DateFormatter의 시간 형식입니다.
  • var dateFormat: String!: 고정 형식 날짜 표현을 사용할 때의 날짜 형식입니다.
  • var locale: Locale!: DateFormatter의 로케일입니다.
  • var timeZone: TimeZone!: DateFormatter의 시간대입니다.

예시

날짜 형식( Date ) → 문자열 형식

import UIKit

let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
dateFormatter.timeStyle = .none

let date = Date(timeIntervalSinceReferenceDate: 118800)

// US English Locale (en_US)
dateFormatter.locale = Locale(identifier: "en_US")
print(dateFormatter.string(from: date)) // Tuesday, January 2, 2001

// KOR Korean Locale (ko_KR)
dateFormatter.locale = Locale(identifier: "ko_KR")
print(dateFormatter.string(from: date)) // 2001년 1월 2일 화요일

문자열 형식 → 날짜 형식

import UIKit

let dateFormatter = DateFormatter()

let dateString = "1970-01-01 08:03:30 +0000"
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
print(dateFormatter.date(from: dateString)!) // 1970-01-01 08:03:30 +0000

0개의 댓글