NSDateFormatter return 从特定日期开始为零
NSDateFormatter return nil from specific dates
我在使用 NSDateFormatter
时遇到问题 return 没有特定日期,例如 2016 年 10 月 16 日 | 2017 年 10 月 15 日 | 2018 年 10 月 21 日 ...
我尝试了一些日期模式:yyyy/MM/dd、MM/dd/yyyy、dd/MM/yyyy,但总是 return nil。
有什么想法吗?
试试这个:
如果你的日期是字符串。
NSString *dateStr = @"October 16, 2016";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"LLLL d, yyyy "];
// [dateFormat setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"%@", [dateFormat stringFromDate:date]);
如果你使用[dateFormat setDateStyle:NSDateFormatterShortStyle];
,结果会是10/16/16
对于swift
使用这种格式:MMMM d, yyyy
var mydate = "October 16, 2016"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "MMMM dd, yyyy"
if let parsedDateTimeString = formatter.dateFromString(mydate) {
print(formatter.stringFromDate(parsedDateTimeString))
} else {
print("date format is wrong")
}
输出:
2016 年 10 月 16 日
你住在巴西吗?
在这 3 个特定日期,巴西的夏令时从 0:00 更改为 1:00。
由于 0:00 不存在日期为 nil
。
我在使用 NSDateFormatter
时遇到问题 return 没有特定日期,例如 2016 年 10 月 16 日 | 2017 年 10 月 15 日 | 2018 年 10 月 21 日 ...
我尝试了一些日期模式:yyyy/MM/dd、MM/dd/yyyy、dd/MM/yyyy,但总是 return nil。
有什么想法吗?
试试这个:
如果你的日期是字符串。
NSString *dateStr = @"October 16, 2016";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"LLLL d, yyyy "];
// [dateFormat setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"%@", [dateFormat stringFromDate:date]);
如果你使用[dateFormat setDateStyle:NSDateFormatterShortStyle];
,结果会是10/16/16
对于swift
使用这种格式:MMMM d, yyyy
var mydate = "October 16, 2016"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "MMMM dd, yyyy"
if let parsedDateTimeString = formatter.dateFromString(mydate) {
print(formatter.stringFromDate(parsedDateTimeString))
} else {
print("date format is wrong")
}
输出: 2016 年 10 月 16 日
你住在巴西吗?
在这 3 个特定日期,巴西的夏令时从 0:00 更改为 1:00。
由于 0:00 不存在日期为 nil
。