iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
Software Development

iOS 從 Objective-c 進化為 Swift 的 30天之旅系列 第 22

[Day 22] Swift Date 進階 (現在星期幾 /這個月有幾天)

  • 分享至 

  • xImage
  •  

前言

之前有介紹過Date 簡易使用
有說要補齊其他會用的
基本上會使用的應該就是
現在星期幾
這個月有幾天
方便統計
剩下還有
Date 轉 String
String 轉 Data

上次簡易使用Date

使用以下程式碼就可以知道現在時間的字串

let currentDate = Date()
let dataFormatter = DateFormatter()
dataFormatter.locale = Locale(identifier: "zh_Hant_TW")
dataFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss"
let stringDate = dataFormatter.string(from: currentDate)

Date 轉 String

//Data 轉 String

func dateToDateString(_ date:Date) -> String {
    let timeZone = NSTimeZone.local
    let formatter = DateFormatter()
    formatter.timeZone = timeZone
    formatter.dateFormat = "yyyy-MM-dd  HH:mm:ss"
    let date = formatter.string(from: date)
    return date
}

String 轉 Date

//String 轉 Data
func timeStringToDate(_ dateStr:String) ->Date {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd  HH:mm:ss"
    let date = dateFormatter.date(from: dateStr)
    return date!
}

今天禮拜幾

用以下程式碼可以show出現在禮拜幾
print 出來是Int-1 才能符合你的星期

let currentDate = Date()
let dataFormatter = DateFormatter()
dataFormatter.locale = Locale(identifier: "zh_Hant_TW")
dataFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss"
let stringDate = dataFormatter.string(from: currentDate)
print(stringDate)

let calender = Calendar(identifier:Calendar.Identifier.gregorian)
let comps = (calender as NSCalendar?)?.components(NSCalendar.Unit.weekday, from: currentDate)
print(comps?.weekday)

這個月有幾天

func countOfDaysInCurrentMonth() ->Int {
    let calendar = Calendar(identifier:Calendar.Identifier.gregorian)
    let range = (calendar as NSCalendar?)?.range(of: NSCalendar.Unit.day, in: NSCalendar.Unit.month, for: Date())
    return (range?.length)!
}

應該統計要使用的功能就是這幾種
就可以平均每週或每月的東西拉


上一篇
[Day 21] Swift SQLite.swift 原來也可以使用原生SQL語法!?
下一篇
[Day 23] Swift Struct 基本介紹運用
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言