2016-07-25 149 views
14

我在函數中遇到NSDate的問題。本質上,格式不起作用,我需要另一組眼睛來看看我做錯了什麼。日期格式不適用於Swift 3

代碼:

@IBOutlet weak var dateField: NSTextField! 

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "MMMM dd yyyy" 
let currentDate = NSDate() 

convertedDateString = dateFormatter.string(from:currentDate as Date) 
dateField.stringValue = convertedDateString as String 

print("convertedDate: ", convertedDateString) 
print("dateField.stringValue: ", dateField.stringValue) 

結果:

convertedDate:2016年7月25日
dateField.stringValue:16年7月25日

+0

根據這個網站一切都ok http://nsdateformatter.com/ –

+1

什麼是你的dateField?格式化程序似乎是正確的。 – WeiJay

+0

日期字段(不管是什麼)可能需要一些特定的格式。 – Sulthan

回答

29
Date().toString() // convert date to string with userdefined format. 

extension Date { 
     func toString() -> String { 
      let dateFormatter = DateFormatter() 
      dateFormatter.dateFormat = "MMMM dd yyyy" 
      return dateFormatter.string(from: self) 
     } 
    } 
+0

這看起來不錯。我嘗試過一個演示,它似乎工作。我會在我的項目中嘗試,但我會將其標記爲解決方案。謝謝! –

+0

你也可以通過 'NSDate()。toString()'和 'extension NSDate {...} – ozata

5

這是我試穿操場和它的工作。

import Foundation 

let dateFormatter = NSDateFormatter() 

dateFormatter.dateFormat = "MMMM dd yyyy" 
let currentDate = NSDate() 

let convertedDateString = dateFormatter.stringFromDate(currentDate) 
var dateField:NSTextField = NSTextField() 
dateField.stringValue = convertedDateString as String 

print(convertedDateString) //July 25 2016 
print(dateField.stringValue) //July 25 2016 

,唯一不同的是,我改變爲NSDateFormatter和替代dateFormatter.string我有dateFormatter.stringFromDate

enter image description here

你不小心設置你有NSTextField故事板或XIB一定的價值?

+0

嗨,在你的操場上,dateField是一個字符串,而不是NSTextField –

+1

好吧,我更新了OSX的操場,還有dateField到NSTextField。它仍然有效。 –

+2

dateFormatter.string(from:currentDate as Date)是Swift 3.雖然 –

8

擴展安裝重和測試之前獲取字符串對日期格式

extension Date { 
     func toString(format: String) -> String { 
      let dateFormatter = DateFormatter() 
      dateFormatter.dateFormat = format 
      return dateFormatter.string(from: self) 
     } 
    } 

Date().toString(format:"H:mm") 
0

我有了問題不從手機中刪除該應用。代碼在模擬器中工作,但不是電話。希望這可以幫助