2017-03-01 14 views
19

मैं 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) 
+0

दिखाने उर 'date', यह वर्तमान दिनांक है या अन्य –

+0

इसकी वर्तमान तिथि नहीं है, मैं डेटपिकर – iOS

+0

से प्राप्त कर रहा हूं 'डेटपिकर' परिणाम –

उत्तर

61

उदाहरण के लिए,

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) 

की तरह आप के रूप में

enter image description here

+0

दिखाएं लेकिन तारीख के पास कोई उचित प्रारूप नहीं है जिसे हमें आधारित रूपांतरित करने की आवश्यकता है n हमारे पुनर्मूल्यांकन –

+0

धन्यवाद Anbu यह काम कर रहा है – iOS

2

आपका अपडेट किया गया यह code.update उत्पादन मिलता है।

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

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 
संबंधित मुद्दे