iOS/iOS Swift 개발 일기

iOS swift DateFormatter

Developer-Michelle 2022. 7. 15. 19:54

DateFormatter

 

날짜만 표현하고 시간은 표현 X 경우

let dateFormatter = DateFormatter()

        dateFormatter.dateStyle = .medium

        dateFormatter.timeStyle = .none

 

// US English Locale (en_US)

        dateFormatter.locale = Locale(identifier: "en_US")

        print(dateFormatter.string(from: date)) // Jan 2, 2001

 

// US English Locale (en_US)

        dateFormatter.locale = Locale(identifier: "en_US")

        dateFormatter.setLocalizedDateFormatFromTemplate("MMMMd") // set template after setting locale

        print(dateFormatter.string(from: date)) // December 31

 

 

https://developer.apple.com/documentation/foundation/dateformatter

 

Apple Developer Documentation

 

developer.apple.com

 

위 내용을 응용하여 과제 ) 디데이계산기 앱을 만들어보았다.

본인이 UIDatePicker에서 날짜를 선택하면 자동으로 D+100 D+200 D+300 D+400 Label에 표시

 

        //달력에서 본인이 선택한 날짜를 변수에 담음

         let date = datePicker.date

        

        let dateformatter = DateFormatter()

        dateformatter.dateStyle = .short

        dateformatter.timeStyle = .none

        //한국시간으로 표시

        dateformatter.locale = Locale(identifier: "ko_kr")

        //형태변환

        dateformatter.dateFormat = "yyyy년 MM월 dd일"

      

        //선택한 날짜에 D+100, D+200,... 더하기

        let pickerDatePlus100Days = Calendar.current.date(byAdding: .day, value: 100, to: date)

        let pickerDatePlus200Days = Calendar.current.date(byAdding: .day, value: 200, to: date)

        let pickerDatePlus300Days = Calendar.current.date(byAdding: .day, value: 300, to: date)

        let pickerDatePlus400Days = Calendar.current.date(byAdding: .day, value: 400, to: date)

        

        //라벨에 출력하기 위해서 string으로 변환 및 dateformatter 적용

        let str_100d = dateformatter.string(from: pickerDatePlus100Days!)

        let str_200d = dateformatter.string(from: pickerDatePlus200Days!)

        let str_300d = dateformatter.string(from: pickerDatePlus300Days!)

        let str_400d = dateformatter.string(from: pickerDatePlus400Days!)

      

        //라벨에 내용 출력

        d100Label.text = str_100d

        d200Label.text = str_200d

        d300Label.text = str_300d

        d400Label.text = str_400d

 

 

How to add one day to UIDatePicker() selected date in swift?

https://stackoverflow.com/questions/60136315/how-to-add-one-day-to-uidatepicker-selected-date-in-swift

 

How to add one day to UIDatePicker() selected date in swift?

I having date picker in my application I select one date from the date picker, need to add one day to that particular selected date. Please find my code. var startingdate:Date? let datePicker =

stackoverflow.com

let pickerDate = datePicker.date
let pickerDatePlusOneDay = Calendar.current.date(byAdding: .day, value: 1, to: pickerDate)

 

보통 DateFormatter()를 이용해서 label 에 보여주거나 하는 형식이 많아서 대부분 date -> String으로 표현하게 됨

 

https://nsios.tistory.com/18

 

[Swift] 날짜형식 변환하기, 시간차 구하기

+ 2020.03.02일 추가 업로드 안녕하세요😄😄 이번에는 날짜형식의 데이터를 자신의 입맛에 맞게 바꾸는 작업과 두 날짜간 시간차를 구하는 방법을 알아볼게요 가지고있는 날짜데이터를 원하는

nsios.tistory.com

 

오전, 오후 시간 나타내는 방법 -> a 이용

format.dateFormat = "a HH:mm"

 

https://velog.io/@hope1053/iOS-DateFormat

 

[iOS] DateFormat

주로 DatePicker를 사용하여 선택한 날짜에 대한 정보를 사용하고 싶을 때 사용하게 된다.DatePicker에서 선택한 날짜는 date 타입으로 바로 문자열로 사용할 수 없고 DateFormatter()를 사용해서 변환해야

velog.io

 

오늘이 포함된 일주일 날짜 불러오기 

https://doh-an.tistory.com/20

 

[swift] 오늘이 포함된 일주일 날짜 불러오기 Date(timeIntervalSinceNow:)

프로젝트 하다가 못쓰게 된 코드가 있어서 남겨본다. 오늘이 3월31일 수요일이라면 일주일 시작 날짜(ex.월요일) 부터의 1주일간의 날짜를 불러오는 법이다. let formatter = DateFormatter() formatter.dateForm

doh-an.tistory.com

 

 

*이번주 시작날짜 , 끝 날짜 구하기

 

// 일요일 = 0

    func getStartDayOfWeek() -> Date {

        let format = DateFormatter()

        format.dateFormat = "MMM-dd-e-EEEE" //e는 1-7(sun-sat)

        

        let day = format.string(from: Date())

        let today = day.components(separatedBy: "-") // [0] = MMM , [1] = dd, [2] = e(1), [3] = EEEE(Sunday)

        let interval = Double(today[2])! //수요일 = 3

        return Date(timeIntervalSinceNow: -(86400 * (interval)))

    }

    

    func getEndDayOfWeek() -> Date {

        let format = DateFormatter()

        format.dateFormat = "MMM-dd-e-EEEE" //e는 1-7(sun-sat)

        

        let day = format.string(from: Date())

        let today = day.components(separatedBy: "-") // [0] = MMM , [1] = dd, [2] = e(1), [3] = EEEE(Sunday)

        let interval = Double(today[2])!

        return Date(timeIntervalSinceNow: (86400 * (7 - interval)))

    }

 

'iOS > iOS Swift 개발 일기' 카테고리의 다른 글

expected declaration 오류 뜰 때  (0) 2022.07.21
iOS swift 반환타입 알아내기  (0) 2022.07.16
iOS swift 개발자 문서 열기  (0) 2022.07.07
TIL 7.3  (0) 2022.07.03
TIL 7.2  (0) 2022.07.02