আমি "2014-07-15 06: 55: 14.198000 + 00: 00" এই স্ট্রিংয়ের তারিখটিকে সুইফটে এনএসডেটে রূপান্তর করতে চাই।
আমি "2014-07-15 06: 55: 14.198000 + 00: 00" এই স্ট্রিংয়ের তারিখটিকে সুইফটে এনএসডেটে রূপান্তর করতে চাই।
উত্তর:
এটা চেষ্টা কর:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = /* find out and place date format from
* http://userguide.icu-project.org/formatparse/datetime
*/
let date = dateFormatter.dateFromString(/* your_date_string */)
আরও প্রশ্নের জন্য, এনএসডিট ফরমেটার এবং ডেটফরম্যাটর ক্লাসগুলি যথাক্রমে অবজেক্টিভ-সি এবং সুইফটের জন্য ফাউন্ডেশন কাঠামোর চেক করুন ।
সুইফট 3 এবং তারপরে (সুইফট 4 অন্তর্ভুক্ত)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = /* date_format_you_want_in_string from
* http://userguide.icu-project.org/formatparse/datetime
*/
guard let date = dateFormatter.date(from: /* your_date_string */) else {
fatalError("ERROR: Date conversion failed due to mismatched format.")
}
// use date constant here
yyyy-MM-dd hh:mm:ssZZZ
। তবে আমি তারিখের অবজেক্টটি স্ট্রিংয়ের বাইরে আনতে পারছি না।
"2014-07-15 10:55:14 +0000"
সঠিক হবে। থেকে হিসাবে NSDate
বর্ণনা তারিখ আউটপুট পার্থক্য (এখানে, জিএমটি -4 ঘন্টা) সঙ্গে গণনা করা হবে। আপনি যদি GMT এবং UTC এর মধ্যে পার্থক্য পেতে চান যা -0400
এই রেফারেন্সটি
hh
যা হওয়া উচিত HH
। ধন্যবাদ!
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
। আমি ধরে নিয়েছি Z
এখানে কেবল একটি চরিত্র। মনে রাখবেন, Z
এর একটি বিশেষ অর্থ রয়েছে। যদি আপনি Z
নির্দিষ্ট করতে চান basic hms
তবে ফর্ম্যাটটি হবে yyyy-MM-dd'T'HH:mm:ss.SSSZ
।
সুইফট 4
import Foundation
let dateString = "2014-07-15" // change to your date format
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: dateString)
println(date)
সুইফট 3
import Foundation
var dateString = "2014-07-15" // change to your date format
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var date = dateFormatter.dateFromString(dateString)
println(date)
আমি এই কোড দিয়ে এটি করতে পারেন।
dd
পরিবর্তে ব্যবহার করা DD
"সর্বদা জানুয়ারী" ইস্যুটি ঠিক করতে সহায়তা করে।
yyyy-MM-dd
অন্যথায়, পার্সড তারিখটি জানুয়ারিতে আটকে গেছে - আমি পরিবর্তনের প্রতিফলনের উত্তরটি আপডেট করেছি।
func convertDateFormatter(date: String) -> String
{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"//this your string date format
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date = dateFormatter.dateFromString(date)
dateFormatter.dateFormat = "yyyy MMM EEEE HH:mm"///this is what you want to convert format
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let timeStamp = dateFormatter.stringFromDate(date!)
return timeStamp
}
সুইফট 3-এর জন্য আপডেট করা হয়েছে।
func convertDateFormatter(date: String) -> String
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"//this your string date format
dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
let date = dateFormatter.date(from: date)
dateFormatter.dateFormat = "yyyy MMM EEEE HH:mm"///this is what you want to convert format
dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
let timeStamp = dateFormatter.string(from: date!)
return timeStamp
}
import Foundation
extension DateFormatter {
convenience init (format: String) {
self.init()
dateFormat = format
locale = Locale.current
}
}
extension String {
func toDate (dateFormatter: DateFormatter) -> Date? {
return dateFormatter.date(from: self)
}
func toDateString (dateFormatter: DateFormatter, outputFormat: String) -> String? {
guard let date = toDate(dateFormatter: dateFormatter) else { return nil }
return DateFormatter(format: outputFormat).string(from: date)
}
}
extension Date {
func toString (dateFormatter: DateFormatter) -> String? {
return dateFormatter.string(from: self)
}
}
var dateString = "14.01.2017T14:54:00"
let dateFormatter = DateFormatter(format: "dd.MM.yyyy'T'HH:mm:ss")
let date = Date()
print("original String with date: \(dateString)")
print("date String() to Date(): \(dateString.toDate(dateFormatter: dateFormatter)!)")
print("date String() to formated date String(): \(dateString.toDateString(dateFormatter: dateFormatter, outputFormat: "dd MMMM")!)")
let dateFormatter2 = DateFormatter(format: "dd MMM HH:mm")
print("format Date(): \(date.toString(dateFormatter: dateFormatter2)!)")
যদি আপনার প্রায়শই একটি তারিখে স্ট্রিংটিকে বিশ্লেষণের প্রয়োজন হয় তবে আপনি কার্যকারিতাটি কোনও এক্সটেনশনে স্থানান্তর করতে চাইতে পারেন। আমি একটি শেয়ারডকোড.সুইফ্ট ফাইল তৈরি করেছি এবং আমার এক্সটেনশানগুলি সেখানে রেখেছি:
extension String
{
func toDateTime() -> NSDate
{
//Create Date Formatter
let dateFormatter = NSDateFormatter()
//Specify Format of String to Parse
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSxxx"
//Parse into NSDate
let dateFromString : NSDate = dateFormatter.dateFromString(self)!
//Return Parsed Date
return dateFromString
}
}
তারপরে আপনি যদি আপনার স্ট্রিংটিকে এনএসডিটে রূপান্তর করতে চান তবে আপনি কেবল কিছু লিখতে পারেন:
var myDate = myDateString.toDateTime()
hh
হওয়া উচিত HH
।
সুইফট 3 এর জন্য
func stringToDate(_ str: String)->Date{
let formatter = DateFormatter()
formatter.dateFormat="yyyy-MM-dd hh:mm:ss Z"
return formatter.date(from: str)!
}
func dateToString(_ str: Date)->String{
var dateFormatter = DateFormatter()
dateFormatter.timeStyle=DateFormatter.Style.short
return dateFormatter.string(from: str)
}
অ্যাপল প্রথম যে বিষয়টি উল্লেখ করেছে তা হ'ল আপনি নিজের বিন্যাসটি ক্যাশে ...
ঠিক কীভাবে এটি করবেন তা উল্লেখ করে অ্যাপল ডকো লিঙ্ক:
দক্ষতার জন্য ক্যাশে ফরমেটারগুলি একটি তারিখ বিন্যাস তৈরি করা কোনও সস্তা অপারেশন নয়। ... একক উদাহরণে ক্যাশে ...
একটি বিশ্বব্যাপী ব্যবহার করুন ...
let df : DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter
}()
তারপরে কেবল সেই বিন্যাসটি যে কোনও জায়গায় ব্যবহার করুন ...
let s = df.string(from: someDate)
অথবা
let d = df.date(from: someString)
অথবা ডেটফোর্ডারে অন্য অনেকগুলি, অনেক সুবিধাজনক পদ্ধতি ব্যবহার করুন।
(আপনি যদি স্ট্রিংয়ে একটি এক্সটেনশন লিখেন তবে আপনার কোডটি সম্পূর্ণ "উল্টো দিকে" - আপনি কোনও ডেটফর্মেটর কল ব্যবহার করতে পারবেন না!)
নোট করুন যে সাধারণত আপনার কাছে সেই কয়েকটি গ্লোবাল থাকবে .. যেমন "ফর্ম্যাটফোর্ডক্লিয়েন্ট" "ফর্ম্যাটপববনব" "ফর্ম্যাটফরডস্কিপঅনআইভয়েসস্ক্রিন" .. ইত্যাদি etc.
সুইফট সমর্থন এক্সটেনশন, এক্সটেনশন সহ আপনি যদি একটি বিদ্যমান করার জন্য একটি নতুন কার্যকারিতা যোগ করতে পারেন class
, structure
, enumeration
, অথবা protocol
প্রকার।
আপনি কীওয়ার্ডটি ব্যবহার করে অবজেক্টটি প্রসারিত করে একটি নতুন init
ফাংশন যুক্ত করতে পারেন ।NSDate
extension
extension NSDate
{
convenience
init(dateString:String) {
let dateStringFormatter = NSDateFormatter()
dateStringFormatter.dateFormat = "yyyyMMdd"
dateStringFormatter.locale = NSLocale(localeIdentifier: "fr_CH_POSIX")
let d = dateStringFormatter.dateFromString(dateString)!
self.init(timeInterval:0, sinceDate:d)
}
}
এখন আপনি এনএসডিট অবজেক্টটি ব্যবহার করে সূচনা করতে পারেন:
let myDateObject = NSDate(dateString:"2010-12-15 06:00:00")
df.date(from: beginDateString)
, আমি একটি শূন্যতা পাই! কেন? ( df = DateFormatter()
)
সুইফ্ট 3-এর পর থেকে অনেকগুলি এনএস উপসর্গ বাদ পড়েছে।
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
/* date format string rules
* http://userguide.icu-project.org/formatparse/datetime
*/
let date = dateFormatter.date(from: dateString)
df.date(from: beginDateString)
, আমি একটি শূন্যতা পাই! কেন? ( df = DateFormatter()
)
সুইফট 3,4:
2 দরকারী রূপান্তর:
string(from: Date) // to convert from Date to a String
date(from: String) // to convert from String to Date
ব্যবহার: 1।
let date = Date() //gives today's date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"
let todaysDateInUKFormat = dateFormatter.string(from: date)
2।
let someDateInString = "23.06.2017"
var getDateFromString = dateFormatter.date(from: someDateInString)
সুইফটের জন্য ৩.১
func convertDateStringToDate(longDate: String) -> String{
/* INPUT: longDate = "2017-01-27T05:00:00.000Z"
* OUTPUT: "1/26/17"
* date_format_you_want_in_string from
* http://userguide.icu-project.org/formatparse/datetime
*/
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from: longDate)
if date != nil {
let formatter = DateFormatter()
formatter.dateStyle = .short
let dateShort = formatter.string(from: date!)
return dateShort
} else {
return longDate
}
}
দ্রষ্টব্য: ত্রুটি থাকলে এই মূল STRING ফিরিয়ে দেবে
আমার জন্য এই কাজ ..
import Foundation
import UIKit
//dateString = "01/07/2017"
private func parseDate(_ dateStr: String) -> String {
let simpleDateFormat = DateFormatter()
simpleDateFormat.dateFormat = "dd/MM/yyyy" //format our date String
let dateFormat = DateFormatter()
dateFormat.dateFormat = "dd 'de' MMMM 'de' yyyy" //format return
let date = simpleDateFormat.date(from: dateStr)
return dateFormat.string(from: date!)
}
নীচে কিছু স্ট্রিং থেকে ডেট ফর্ম্যাট রূপান্তরকরণ বিকল্পগুলি সুইফট আইওএস ব্যবহার করা যেতে পারে।
Thursday, Dec 27, 2018
বিন্যাস = EEEE, MMM d, yyyy
12/27/2018
বিন্যাস = MM/dd/yyyy
12-27-2018 09:59
বিন্যাস = MM-dd-yyyy HH:mm
Dec 27, 9:59 AM
বিন্যাস = MMM d, h:mm a
December 2018
বিন্যাস = MMMM yyyy
Dec 27, 2018
বিন্যাস = MMM d, yyyy
Thu, 27 Dec 2018 09:59:19 +0000
বিন্যাস = E, d MMM yyyy HH:mm:ss Z
2018-12-27T09:59:19+0000
বিন্যাস = yyyy-MM-dd'T'HH:mm:ssZ
27.12.18
বিন্যাস = dd.MM.yy
09:59:19.815
বিন্যাস = HH:mm:ss.SSS
Swift: iOS
if we have string, convert it to NSDate,
var dataString = profileValue["dob"] as String
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
// convert string into date
let dateValue:NSDate? = dateFormatter.dateFromString(dataString)
if you have and date picker parse date like this
// to avoid any nil value
if let isDate = dateValue {
self.datePicker.date = isDate
}
আপনি এই সুইফ্ট কোডটি চেষ্টা করতে পারেন
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"//same as strDate date formator
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00")//Must used if you get one day less in conversion
let convertedDateObject = dateFormatter.date(from: strDate)
সুইফট 5 , এক্সকোড 11.0
আপনার (স্ট্রিংয়ের তারিখ) "ডেটস্ট্রিং" এবং "ডেটফর্ম্যাট" পাস ফর্ম্যাটে আপনি চান পাস করুন। ফর্ম্যাট চয়ন করতে, এনডিট ফরমেটার ওয়েবসাইটটি ব্যবহার করুন ।
func getDateFrom(dateString: String, dateFormat: String) -> Date? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.locale = Locale(identifier: "en_US")
guard let date = dateFormatter.date(from: dateString) else {return nil}
return date
}
import Foundation
let now : String = "2014-07-16 03:03:34 PDT"
var date : NSDate
var dateFormatter : NSDateFormatter
date = dateFormatter.dateFromString(now)
date // $R6: __NSDate = 2014-07-16 03:03:34 PDT