programing

iOS Swift에서 NSDate를 문자열로 변환

sourcejob 2023. 9. 11. 21:38
반응형

iOS Swift에서 NSDate를 문자열로 변환

변환하려고 합니다.NSDate에 이르기까지String[형식 변경]을 선택합니다.하지만 내가 지나가면NSDate로.String그것은 하얀 공간을 만들어내고 있습니다.

 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)

자세한 정보는 Apple Date formatter Document에서 얻을 수 있습니다.dateString에 대한 날짜 형식을 설정하려면 다음 링크를 참조하십시오. 예를 들어 다음과 같이 하십시오.

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

let myString = formatter.string(from: Date()) // string purpose I add here 
// 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 myStringDate = formatter.string(from: yourDate!)

print(myStringDate)

출력은 다음과 같습니다.

enter image description here

변환할 때 항상 이 코드를 사용합니다.Date로.String. (스위프트 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")

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

코드를 업데이트합니다. 업데이트합니다.

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!)

포맷터를 만들 때 유의해야 할 사항은 포맷터를 만드는 데 상당히 많은 계산 비용이 들기 때문에 가능하다면 동일한 인스턴스를 재사용해 보는 것입니다.다음은 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())

할당후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년3월

이 확장자를 사용할 수 있습니다.

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!)
    }
}

보기 컨트롤러에서 이와 같이 사용합니다(<yyyyy>를 형식으로 바꿉니다).

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

언급URL : https://stackoverflow.com/questions/42524651/convert-nsdate-to-string-in-ios-swift

반응형