2016-07-25 5 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 : 7/25/16

+0

이 사이트에 따르면 모든 것이 좋습니다 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에 대해 NSDate(). toString() 및 확장 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에서 일부 값을 설정 했습니까? 설치 및 테스트를 다시하기 전에 날짜 형식

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

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

안녕하세요, 놀이터에서 dateField는 NSTextField가 아닌 문자열입니다. –

+1

좋아, OSX 용 놀이터와 NSTextField에 대한 dateField. 여전히 작동합니다. –

+2

dateFormatter.string (date : currentDate from Date)은 Swift 3입니다. 도움을 주셔서 감사합니다. –

8

확장. 코드는 시뮬레이터에서는 작동하지만 전화기에서는 작동하지 않습니다. 희망이 도움이

0

내가 가진 문제는 내 휴대 전화에서 앱을 삭제하지 않은에 대해 문자열을 얻기를위한

관련 문제