2017-05-18 1 views
-3

05/18/2017 같은 문자열을 NSDate으로 변환하려면 어떻게해야합니까?Swift에서 NSDate로 문자열을 변환하는 방법?

내가 201705 연도로 18 달 같은 일을 추출 할 수 있도록 NSDate이 문자열을 변환하려합니다. 어떻게 변환 할 수 있습니까 문자열에서 그 값을 추출 할 수 있습니다.

func toDate(dateString : String, dateFormat : String = "yyyy-MM-dd'T'HH:mm:ssX")-> NSDate!{ 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = dateFormat 
    dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
    dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) 
    let convertedDate = dateFormatter.dateFromString(dateString) 
    return convertedDate 
} 

지금 selectedValue 아래 코드에서 05/18/2017하지만 NSDateFromString 항상 전무 값을 보여줍니다

let nsdateFromString = String.toDate(selectedValue) 

나는이 경우에는 무엇을 할 수 있습니까?

+3

"YYYY-MM-dd'T'HH 변환 : ssX "vs"05/18/2017 "어떻게 생각하십니까? 일치하니? – Larme

+0

컴포넌트를 추출하려면 NSDateComponents를 사용하십시오 (Swift 3으로 업데이트하는 것을 고려하십시오). – vadian

답변

4

함수 toDate 당신이 값 MM/dd/yyyy와 메서드 호출로 dateFormat 인수도 전달해야합니다, 그래서 selectedValue의 날짜 형식을 일치하지 않는 기본 dateFormat 값.

let nsdateFromString = String.toDate(dateString: selectedValue, dateFormat: "MM/dd/yyyy") 
+0

오오! 내 실수 감사합니다 :) – iron

+0

@iron 환영 메신저 :) –

0
func convertSToD(date : String)-> Date?{ 
     if date != "NA"{ 
     let interval = Double(date) 
     let dateFormat = Date(timeIntervalSince1970: interval!) 
     return dateFormat 
     } 
     return nil 
    } 
0

이 시도 : - : mm

func toDate(dateString : String, dateFormat : String = "MM/dd/yyyy")-> NSDate!{ 
let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = dateFormat 
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) 
let convertedDate = dateFormatter.dateFromString(dateString) 
return convertedDate 
} 
4
**in SWIFT 3.0,** 


let strDate = "12/21/2017" 
let datefrmter = DateFormatter() 
datefrmter.dateFormat = "mm/dd/yyyy" 
let date = datefrmter.date(from: strDate) 
print(date) 
0

는 현재 날짜와 시간

let formatter1 = DateFormatter() 

     let date1 = Date.init() 
     formatter1.dateFormat = "dd-MMM-yyyy hh:mm a" 
     let days = formatter1.string(from: date1 as Date) 

     print(days) 
+0

형식이 잘못되었습니다 (질문 읽기) 및 캐스트가 필요하지 않습니다. – Moritz

0
//in Swift 3.0 converting string to NSDate with its format 
let dateString = self.scoring_date 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z" 
dateFormatter.locale = Locale.init(identifier: "en_GB") 

self.dateObj = dateFormatter.date(from: dateString! as String)! 

dateFormatter.dateFormat = "MM-dd-yyyy" 
print("Dateobj: \(dateFormatter.string(from: self.dateObj))") 

//converting NSDate to String 
let today = Date() 
today.toString(dateFormat: "dd-MM")