2014-06-22 1 views
5

Swift에서 NSDateFormatter를 사용하는 데 문제가 있습니까? 아래 코드는 아무것도 인쇄하지 않습니다.Swift에서 NSDateFormatter (stringFromDate)를 사용하는 데 문제가 있습니다

var dateFormatter = NSDateFormatter() 
println(dateFormatter.stringFromDate(NSDate())) 
+0

읽기 [문자열 보간 (https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language/StringsAndCharacters.html) 참조 – Mohsen

답변

6

날짜 스타일을 설정 했습니까? 그렇지 않으면 빈 문자열이 출력됩니다.

var dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = .FullStyle 
println(dateFormatter.stringFromDate(NSDate())) 
+0

그게 그냥 기본값 스타일 뭔가를 인쇄 할 수 있어야합니다 ... –

19

dateFormat (또는 dateStyle)을 설정하십시오.

다음은 누락 된 부분을보다 쉽게 ​​볼 수 있도록 해주는 예제입니다.

주목해야 할 특정 라인은 dateFormatter의 dateFormat을 설정해야하는 라인입니다. 여기에서는 "yyyy-MM-dd"로 설정하여 "2014-06-22"와 같은 출력을 제공합니다.

func formatADate() { 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd" 
    let d = NSDate() 
    let s = dateFormatter.stringFromDate(d) 
    println(s) 
} 

그런 다음 formatADate()를 호출 할 수 있습니다.

자세한 내용은 NSDateFormatter reference을 확인하십시오.

+0

답해 주셔서 감사합니다. 나는 단지 'Gotcha'를 공유하고 싶었습니다. timeStyle 속성은 dateStyle로 간주됩니다. NSFormatter()를 사용하고 timeStyle = .NoStyle을 설정 한 다음 dateFormat을 설정하고 처음에는 빈 문자열을 얻는 이유에 대해 혼란스러워했습니다. 귀하의 예제를보고 나면 날이 밝았어요. dateFormat을 설정하면 시간이 무엇인지/시간이 어떻게 보이는지, 그리고 timeStyle을 아무 것도 설정하지 않으면 실제로 문제가 발생합니다. timeFormat과 dateStyle을 모두 설정하지 마십시오. –

+0

주 : dateFormatter는 상수 일 수 있습니다 (예 : var 대신 let). –

4

당신이 UIDatePicker를 사용하는 경우 :

@IBAction func whenDateChanged(sender: UIDatePicker) { 

    var dateFormatter = NSDateFormatter() 

    dateFormatter.dateFormat = "MM-dd-yyyy" 

    let strDate = dateFormatter.stringFromDate(datePicker.date) 

    self.dateLabel.text = strDate 

} 
관련 문제