iOS & Swift 공부 - UIDatePicker & DateFormatter

김영채 (Kevin)·2021년 1월 28일
0

iOS & Swift

목록 보기
59/107

UIDatePicker


  • UIDatePicker 예시

→ 기본적으로 여러 Attributes 를 제공한다.

Date Picker 에 Action method 연결하기

  • Date picker는 사용자가 선택된 날짜를 바꿀 경우 애플리케이션에 알리기 위해 타깃 액션 디자인 패턴을 사용
  • Date picker의 값이 변경될 때 알림을 받기 위해 액션 메서드를 valueChanged로 설정
  • 실행시점에서 Date picker는 사용자의 날짜 및 시간 선택하게되면 설정된 액션 메서드를 호출
  • Date picker를 액션 메서드에 연결하기 위해 인터페이스 빌더를 이용하거나 코드로 addTarget(_:action:for:)메서드를 사용

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에 표시되는 초깃값입니다.

DateFormatter


  • 날짜와 텍스트 표현 간의 변환을 할 수 있게 해 준다
  • DateFormatter 를 활용해 날짜와 시간을 다양한 방식으로 출력하거나 출력된 날짜/시간에 대한 문자열 읽어오기 가능
  • DateFormatter의 인스턴스는 Date 객체의 문자열 표현을 생성하고, 날짜 및 시간의 텍스트 표현을 Date 객체로 변환한다

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의 시간대입니다.

예제 코드

  1. 날짜 형식(Date 객체) -> 문자열 형식(textual representation)
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일 화요일
  1. 문자열 형식 -> 날짜 형식
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

위 내용은 "https://www.boostcourse.org/mo326/lecture/16885" 을 참고하여 공부한 내용을 개인적으로 정리하였습니다.

profile
맛있는 iOS 프로그래밍

0개의 댓글