我如何将一个NSString像“01/02/10”(意思是2010年2月1日)转换成一个NSDate?如何将NSDate转换回字符串?
当前回答
上面的例子不是简单地为Swift 3.0+编写的
更新- Swift 3.0+ -转换日期到字符串
let date = Date() // insert your date data here
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd" // add custom format if you'd like
var dateString = dateFormatter.string(from: date)
其他回答
首次约会还是第一次约会
//This method is used to get NSDate from string
//Pass the date formate ex-"dd-MM-yyyy hh:mm a"
+ (NSDate*)getDateFromString:(NSString *)dateString withFormate:(NSString *)formate {
// Converted date from date string
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:formate];
NSDate *convertedDate = [dateFormatter dateFromString:dateString];
return convertedDate;
}
//This method is used to get the NSString for NSDate
//Pass the date formate ex-"dd-MM-yyyy hh:mm a"
+ (NSString *)getDateStringFromDate:(NSDate *)date withFormate:(NSString *)formate {
// Converted date from date string
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:formate];
NSString *convertedDate = [dateFormatter stringFromDate:date];
return convertedDate;
}
// Convert string to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert Date to string
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];
[dateFormat release];
根据Swift 2.2
你可以很容易地得到NSDate从字符串和字符串从NSDate。 如。
第一次设置日期格式化程序
let formatter = NSDateFormatter();
formatter.dateStyle = NSDateFormatterStyle.MediumStyle
formatter.timeStyle = .NoStyle
formatter.dateFormat = "MM/dd/yyyy"
现在从字符串中获取date,反之亦然。
let strDate = formatter.stringFromDate(NSDate())
print(strDate)
let dateFromStr = formatter.dateFromString(strDate)
print(dateFromStr)
现在享受。
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];
如果现在有人有兴趣在Swift中做这样的事情,我已经开始做了一些事情,尽管它并不完美。
func detectDate(dateString: NSString) -> NSDate {
var error: NSError?
let detector: NSDataDetector = NSDataDetector.dataDetectorWithTypes(NSTextCheckingType.Date.toRaw(), error: &error)!
if error == nil {
var matches = detector.matchesInString(dateString, options: nil, range: NSMakeRange(0, dateString.length))
let currentLocale = NSLocale.currentLocale()
for match in matches {
match.resultType == NSTextCheckingType.Date
NSLog("Date: \(match.date.description)")
return match.date
}
}
return NSDate()
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Swift:声明一个空字典
- 为什么ARC仍然需要@autoreleasepool ?
- 在成功提交我的应用程序后,“太多符号文件”
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- Xcode 4挂在“附加到(应用程序名称)”
- CFNetwork SSLHandshake iOS 9失败
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0
- 缺少推荐的图标文件-该包不包含iPhone / iPod Touch的应用程序图标,像素为“120x120”,png格式