๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS

[Swift] Date์™€ DateFormatter๋กœ ํ•œ๊ตญ ํ˜„์žฌ ์‹œ๊ฐ„ ๊ตฌํ•˜๊ณ  UILabel์— ๋„ฃ์–ด๋ณด๊ธฐ

by ํ‹ด๋”” 2020. 9. 29.
728x90
๋ฐ˜์‘ํ˜•

๊ทธ ๋™์•ˆ ๋ฏธ๋ฃจ๊ณ  ์žˆ์—ˆ๋˜ Date๋ฅผ ๋ณผ๋•Œ๊ฐ€ ์˜จ๊ฑฐ ๊ฐ™๋‹ค....๐Ÿคจ

Horizontal collectionView์— ์ฒซ ๋ฒˆ์งธ ์…€์„ ํ˜„์žฌ ๋‚ ์งœ๋กœ ๊ธฐ์ค€ํ•ด์„œ ๊ทธ ๋‹ค์Œ ๋‚ ์— ๋‹ค์Œ ์…€์„ ํ•  ๋‹นํ•ด ์ฃผ๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค๊ฒ๋‹ˆ๋‹ค!

 

์šฐ์„  now๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

let now = Date().timeIntervalSince1970

 

Date() ๋Š” ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ 

timeIntervalSince1970์€ 1970๋…„ ์ดํ›„๋กœ ๋ช‡ ์ดˆ๊ฐ€ ํ˜๋ €๋Š”์ง€ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‹œ๊ฐ„์„ now๋ผ๋Š” ํ”„๋กœํผํ‹ฐ์— ์ง€์ •ํ•ด ์ค๋‹ˆ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ DateFormatter์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    let date: DateFormatter = {
        let df = DateFormatter()
        df.locale = Locale(identifier: "ko_KR")
        df.timeZone = TimeZone(abbreviation: "KST")
        df.dateFormat = "yyyy-MM-dd"
        return df
    }()

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด DateFormatter ํƒ€์ž…์˜ date ํ”„๋กœํผํ‹ฐ๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค

local๊ณผ timeZone์— ๊ฐ๊ฐ ko_KR, KST๋กœ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๊ตญ ๊ธฐ์ค€์˜ ์‹œ๊ฐ„์ด ๋‚˜์˜ต๋‹ˆ๋‹ค

dateFormat์€ yyyy-MM-dd๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ๋Š”๋ฐ

์ฒ˜์Œ์— MM์„ mm์œผ๋กœ ์ž˜ ๋ชป ์ ์—ˆ๋”๋‹ˆ 15์›”๋‹ฌ์ด ๋‚˜์˜ค๋”๋ผ๋Š”.....

์ด๋ ‡๊ฒŒ ์ง€์ •ํ•ด ์ฃผ๋ฉด 2020-09-05์˜ ํ˜•ํƒœ๋กœ ํฌ๋ฉงํŒ… ๋ฉ๋‹ˆ๋‹ค

 

๋” ๋งŽ์ด ์•Œ์•„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”~

https://stackoverflow.com/questions/35700281/date-format-in-swift

 

E Mon๊ณผ ๊ฐ™์€ ์š”์ผ ์•ฝ์–ด

EEEE Monday์™€ ๊ฐ™์€ ์š”์ผ

HH:mm 12:00์‹œ๊ฐ„:๋ถ„

MMM Sep๋‹ฌ ์•ฝ์–ด

MMMM September๋‹ฌ ์ด๋ฆ„

 

์ด์ œ ์…€์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

 

 

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CELL_IDENTIFIER, for: indexPath) as! PickerSubCell
        
        let today = Int(now) + (indexPath.row * 86400)
        let timeInterval = TimeInterval(today)
        let cellTxt = Date(timeIntervalSince1970: timeInterval)

        
        cell.lblTxt.text = "\(date.string(from: cellTxt))"
        
        return cell
    }

now๋Š” ์œ„์—์„œ ์„ ์–ธํ•ด ์ค€ timeInterval ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

ํ•˜๋ฃจ 24์‹œ๊ฐ„์„ ์ดˆ๋กœ ๋ฐ”๊พธ๋ฉด 86400์ดˆ๊ฐ€ ๋˜๋ฏ€๋กœ

๊ฐ ์…€์—์„œ ์˜ค๋Š˜ ๋‚ ์งœ์—๋‹ค๊ฐ€ ๋‹ค์Œ๋‚  ๋‹ค์Œ๋‚ ์ด ์ฐํžˆ๋„๋ก

indexPath.row์™€ 86400์„ ๊ณฑํ•œ ๋’ค ๋”ํ•ด ์ค๋‹ˆ๋‹ค.

๋‹ค์‹œ Dateํƒ€์ž…์œผ๋กœ ๋ฐ”๊พผ๋’ค 

์…€์— ์ž‡๋Š” ๋ผ๋ฒจ์— ๋„ฃ์–ด ์ฃผ๋ฉด

์ด๋ ‡๊ฒŒ ๋‚˜์˜ต๋‹ˆ๋‹ค

 

 

ํ‹€๋ฆฌ๊ฑฐ๋‚˜ ์ด์ƒํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ ค์š”!!

ํ™˜์ ˆ๊ธฐ๊ฐ€ ๋‹ค๊ฐ€์˜ค๋‚˜ ๋ด…๋‹ˆ๋‹ค..๋น„์—ผ์ด ์Šฌ์Šฌ ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ ๋ณด๋ฉด ใ… ใ… ๐Ÿคง๐Ÿคง๐Ÿคง

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€