2016-10-05 121 views
-6

我是Swift的新品牌,所以請耐心等待,如果我問明顯的話。 我有一個日期選擇器和一個標籤。在更改日期選擇器上的日期時,標籤以yyyy-mm-dd hh-mm-ss格式顯示日期/時間。我的代碼是使用日期選擇器進行日期格式化

@IBAction func DtPicker(_ sender: UIDatePicker) 
{ 
    let strDate = String(describing: sender.date) 
    lblShowShifts.text = strDate 
} 

工作正常

我的問題是,我只是想顯示的日期爲DD-MM-YYYY(然後從控制日期計算天數) 我得到失去了看着dateformatter等,似乎正在嘗試各種排列的圓圈。誰能幫助 - 感謝預期

+8

有斯威夫特格式化日期的例子不勝枚舉。請做一些搜索。如果您遇到特定問題,請發佈您嘗試過的內容並解釋問題。 – rmaddy

+3

可能重複的[Swift格式日期](http://stackoverflow.com/questions/31316207/swift-format-date) –

回答

1

@IBAction FUNC DatePickerAction(發件人:AnyObject){

let strDate = String(sender.date) 
    lblShowShifts.text = strDate 

    let calendar: NSCalendar = NSCalendar.currentCalendar() 
    let currenttDate = NSDate() 
    let dateString = String(sender.date) 

    //Default formatter for UIDatePicker -> "yyyy-MM-dd HH:mm:ssZ" 
    //Fisrtly you need to give the formmater in which date is coming 
     and then later change it according to your requirements 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ" 

    let secondDate = dateFormatter.dateFromString(dateString) 

    let date1 = calendar.startOfDayForDate(currenttDate) 
    let date2 = calendar.startOfDayForDate(secondDate!) 

    //Find number of days between two dates 
    let flags = NSCalendarUnit.Day 
    let components = calendar.components(flags, fromDate: date1, toDate: date2, options: []) 

    //Here you can do the calculations 

    print("number of days between current date and today\(components.day)") 


} 
+0

謝謝Ishika - 上述幾乎回答我的問題(稍微調整一下)。唯一的查詢出現的是我用label.text語句(lblShow.text = String(「天數等)」替換了print(「天數等等) - 它計算日期差異,但是以格式<< Number of天等等可選(x)>>其中x是過期差異,任何人都可以解釋這一點,我試着尋找一個沒有成功的解釋 –

+0

@ Sgt_1381請在結尾處放置感嘆號來解開可選值 – Ishika

+0

感謝Ishika - 多讚賞 –