훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

05-31 13:23

티스토리

hELLO · Designed By 정상우.
훌이

후리스콜링개발

[iOS] DateFormatter
⭐️ 개발/iOS & Swift

[iOS] DateFormatter

2021. 6. 24. 18:00
728x90
반응형

노션으로 보기

🗳 오늘은 FSCalendar를 공부하기 위해서

DateFormatter를 먼저 공부해보려고 해요!

 

DateFormatter는 날짜의 형식을 바꿔줄 때 사용합니다.

그러니까 날짜를 어떻게 보여줄 건지를 정하고 싶을 때 사용해요!

 

 

그럼 한 번 어떻게 쓰는지 알아볼까요?

 

우선 현재 날짜 및 시간을 출력해주기 위해서 아래와 같은 코드가 필요합니다.

let now = Date()

→ Date() 자료형에 맞는 인스턴스를 생성해 현재 날짜와 시간을 알 수 있는데 Date에는 다양한 이니셜라이저가 있어요.

 

< Date의 이니셜라이저들 >

하나하나 차례대로 살펴보면,,,

 

1 ) init(timeIntervalSinceNow: TimeInterval)

→ 현재 시간을 기준으로 TimeInterval 만큼 후의 날짜와 시간

→ 여기서 TimeInterval은 초를 의미합니다. = A number of seconds.

  • 하루는 60 * 60 * 24 = 86400 초로 구성되어 있어서 TimeInterval에 86400을 적어줍니다.
let date = Date(timeIntervalSinceNow: 86400)
// 지금 시간이 2021-06-24 06:31:07 인 경우
print(date) // 2021-06-25 06:31:07 +0000

 

 

2 ) init(timeIntervalSinceReferenceDate: TimeInterval)

→ 2001년 1월 1일 00:00 기준으로 TimeInterval 만큼 후의 날짜와 시간

let date = Date(timeIntervalSinceReferenceDate: 86400)
print(date) // 2001-01-02 00:00:00 +0000

 

3 ) init(timeIntervalSince1970: TimeInterval)

→ 1970년 1월 1일 00:00 UTC 기준으로 TimeInterval 만큼 후의 날짜와 시간

let date = Date(timeIntervalSince1970: 86400)
print(date) // 1970-01-02 00:00:00 +0000

 

4 ) init(timeInterval: TimeInterval, since: Date)

→ 지정해준 날짜를 기준으로 TimeInterval 만큼 후의 날짜와 시간

let date = Date(timeInterval: 86400, since: Date(timeIntervalSinceNow: 86400))
// 지금 시간이 2021-06-24 07:16:54 일 경우 이틀 후의 시간을 출력
print(date) // 2021-06-26 07:16:54 +0000

 

 


 

1️⃣ 현재 날짜와 시간을 위해 인스턴스를 하나 생성하고

let now = Date()

 

2️⃣ date를 보여주기 위해서 DateFormatter 인스턴스를 하나 생성해줍니다!

let dateFormatter : DateFormatter = {
        let formatter = DateFormatter()
        formatter.locale = Locale(identifier: "ko_KR") 
        formatter.dateStyle = .medium // 날짜 형식
        formatter.timeStyle = .full // 시간 형식
        return formatter
}()
  • formatter.locale = Locale(identifier: "ko_KR")

        →  이 부분은 어느 나라 형식으로 날짜와 시간을 보여줄 지를 결정합니다

 

예를 들어,,,

  • jp_JP로 identifier를 적어주면 [ 2021/06/24 14時51分06秒 韓国標準時 ] 이렇게 출력이 됩니다.
  • en_US로 적어주면 [ Jun 24, 2021 at 4:27:02 PM Korean Standard Time ] 로 출력이 됩니다

 

  • dateStyle : 날짜 형식
  • timeStyle : 시간 형식

 

🧐 단순 호기심으로 하나하나 출력해봤어요.. 무슨 차이인지

  • dateStyle : .full 인 경우 → 2021년 6월 24일 목요일
  • dateStyle : .long 인 경우 → 2021년 6월 24일
  • dateStyle : .medium 인 경우 → 2021. 6. 24.
  • dateStyle : .short 인 경우 → 2021. 6. 24.

 

  • timeStyle : .full 인 경우 → 오후 4시 28분 39초 대한민국 표준시
  • timeStyle : .long 인 경우 → 오후 4시 29분 39초 GMT+9
  • timeStyle : .medium 인 경우 → 오후 4:29:39
  • timeStyle : .short 인 경우 → 오후 4:29

 

 

3️⃣ 원하는 형식으로 날짜 형식 변환하기

dateFormat을 통해서 원하는 형식을 문자열로 작성해주면 됩니다.

  • 년도는 yyyy / 월은 MM / 일은 dd 로 적어줘야 해요.

        → mm 이라고 썼더니 이상하게 출력이 된다는....

  • 요일은 EEEE (목요일) / E (목)
  • 시간은 HH:mm:ss (24시간을 기준으로 출력) / hh:mm:ss (12시간을 기준으로 출력)
formatter.dateFormat = "yyyy-MM-dd" // 2021-06-24
formatter.dateFormat = "yyyy-MM-dd-EEEE, HH:mm:ss" // 2021-06-24-목요일, 17:30:05
formatter.dateFormat = "yyyy-MM-dd-E, hh:mm:ss" // 2021-06-24-목, 05:06:12

🗳 위 사진의 출처 링크 - 여기를 누르세요

 

Date Format in Swift

How will I convert this datetime from the date? From this: 2016-02-29 12:24:26 to: Feb 29, 2016 So far, this is my code and it returns a nil value: let dateFormatter = NSDateFormatter()

stackoverflow.com

 


🗳 DateComponents를 통해서 원하는 요소만 선택해서 인스턴스를 생성할 수도 있어요!

let myBirthday = DateComponents(year: 1998, month: 02, day: 02)

 

DateComponents는 모든 값이 다 옵셔널 형태이기 때문에 원하는 부분에만 값을 줘도 됩니다!

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'⭐️ 개발 > iOS & Swift' 카테고리의 다른 글

[iOS] TextView - 플레이스홀더, 패딩, 글자 수 제한, 커서, 키보드 dismiss  (0) 2021.07.22
[iOS] Alamofire Multipart/formdata를 통한 이미지 서버 통신  (3) 2021.07.19
[iOS] Expandable TableView Cell 만들기  (6) 2021.06.16
[iOS] UIColor Extension 파일 만드는 법 (feat.Zeplin)  (1) 2021.06.07
[iOS] NSMutableAttributedString : 문자열 특정 부분 색 바꿔주고 싶을 때  (0) 2021.06.07
    '⭐️ 개발/iOS & Swift' 카테고리의 다른 글
    • [iOS] TextView - 플레이스홀더, 패딩, 글자 수 제한, 커서, 키보드 dismiss
    • [iOS] Alamofire Multipart/formdata를 통한 이미지 서버 통신
    • [iOS] Expandable TableView Cell 만들기
    • [iOS] UIColor Extension 파일 만드는 법 (feat.Zeplin)
    훌이
    훌이

    티스토리툴바