2017-03-01 3 views
19

NSDateString으로 변환하고 형식을 변경하려고합니다. 그러나 NSDateString으로 전달하면 공백이 생성됩니다. 당신이NSDate를 iOS 용 Swift로 변환하십시오.

업데이트 된

enter image description here

+0

통해 UR'date'을 보여, 현재 날짜가 아니면 –

+0

현재 날짜가 아님, Datepicker에서 가져 오기 – iOS

+0

'Datepicker'결과가 –

답변

61

는 예컨대 위해 수행.

let formatter = DateFormatter() 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
let myString = formatter.string(from: date as Date) 
let yourDate: Date? = formatter.date(from: myString) 
formatter.dateFormat = "dd-MMM-yyyy" 
print(yourDate!) 
+0

인데 날짜는 변환 할 필요가있는 적절한 형식이 없습니다. n 우리의 reauirment –

+0

감사 Anbu 작동 – iOS

2

그것을 code.update으로 출력을 얻을

let formatter = DateFormatter() 
// initially set the format based on your datepicker date 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 

let myString = formatter.string(from: Date()) 
// convert your string to date 
let yourDate = formatter.date(from: myString) 
//then again set the date format whhich type of output you need 
formatter.dateFormat = "dd-MMM-yyyy" 
// again convert your date to string 
let myStringafd = formatter.string(from: yourDate!) 

print(myStringafd) 

처럼

let formatter = DateFormatter() 
let myString = (String(describing: date)) 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
let yourDate: Date? = formatter.date(from: myString) 
formatter.dateFormat = "dd-MMM-yyyy" 
print(yourDate) 
0

DateFormatter을 할당 한 후에는 다음

var date = Date() 
let formatter = DateFormatter() 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
let myString = formatter.string(from: date) 
let yourDate: Date? = formatter.date(from: myString) 
formatter.dateFormat = "dd-MMM-yyyy" 
let updatedString = formatter.string(from: yourDate!) 
print(updatedString) 

출력

01 월 - 2017 이런 식으로 같은 문자열로 변환 할 수 있습니다 포맷 된 문자열 을 줄 필요가

17

Date을로 변환하는 동안 항상이 코드를 사용합니다.. (스위프트 3)

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

} 

및 전화하십시오. .

let today = Date() 
today.toString(dateFormat: "dd-MM") 
1

당신은이 확장 사용할 수 있습니다

extension Date { 

    func toString(withFormat format: String) -> String { 
     let formatter = DateFormatter() 
     formatter.dateFormat = format 
     let myString = formatter.string(from: self) 
     let yourDate = formatter.date(from: myString) 
     formatter.dateFormat = format 

     return formatter.string(from: yourDate!) 
    } 
} 

을 그리고이 같은 뷰 컨트롤러에서 사용 (귀하의 형식 < "YYYY를"> 대체) :

yourString = yourDate.toString(withFormat: "yyyy") 
0

뭔가를 형식 작성자를 만들 때 가능한 한 동일한 인스턴스를 다시 사용하려고하면 형식 작성자가 계산 비용이 많이 들기 때문에주의해야합니다. 다음은 내가 자주 사용하는 패턴으로, 전체적으로 동일한 포맷터를 공유 할 수 있으며, from NSHipster에 맞게 조정되었습니다.

extension DateFormatter { 

    static var sharedDateFormatter: DateFormatter = { 
     let dateFormatter = DateFormatter() 
     // Add your formatter configuration here  
     dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
     return dateFormatter 
    }() 
} 

사용법 :

let dateString = DateFormatter.sharedDateFormatter.string(from: Date()) 
1

DateFormatter 서식 문자열과 수리를 너무 게으른 사람들을 위해 일부 공장 날짜 스타일을 가지고있다.사용자 정의 스타일이 필요하지 않은 경우, 여기에 또 다른 옵션들 :

extension Date { 
    func asString(style: DateFormatter.Style) -> String { 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateStyle = style 
    return dateFormatter.string(from: self) 
    } 
} 

이 당신에게 다음과 같은 스타일을 제공합니다

short, medium, long, full 

사용 예제 :

let myDate = Date() 
myDate.asString(style: .full) // Wednesday, January 10, 2018 
myDate.asString(style: .long) // January 10, 2018 
myDate.asString(style: .medium) // Jan 10, 2018 
myDate.asString(style: .short) // 1/10/18