我有一个函数,我在其中传递日期:
createDate("2016-12-24'T'17:12:33.0500")
和定义
func createDate(fromString: String) -> NSDate {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
guard let date = dateFormatter.dateFromString(fromString) else {
return NSDate()
}
return date
}
出于某种原因,我总是得到今天的日期而不是12月24日。
我做错了什么?
答案 0 :(得分:1)
将dateformat更改为
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSS"
并将输入更改为
createDate("2016-12-24T17:12:33.0500")
答案 1 :(得分:0)
这项工作对我很好,你可以试试
注意:您的传递日期字符串最后不包含Z. 你用
createDate("2016-12-24'T'17:12:33.0500")
试试这个
createDate("2016-12-24'T'17:12:33.050Z")//3 digit in millisecond part , not 4
func createDate(dateString:String) -> NSDate {
let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
dateFormater.locale = NSLocale.currentLocale()
return dateFormater.dateFromString(dateString)!
}
答案 2 :(得分:0)
您的输入没有时区(例如:" + 000")但是四位数毫秒。要处理此问题,请将日期格式更改为:
"yyyy-MM-dd'T'HH:mm:ss.SSSS"
同时删除'
周围的" T"在输入中:
"2016-12-24T17:12:33.0500"
合:
func createDate(fromString: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSS"
guard let date = dateFormatter.date(from: fromString) else {
return Date()
}
return date
}
createDate(fromString: "2016-12-24T17:12:33.0500")
答案 3 :(得分:0)
+ (NSDate*)fetchDateFromString:(NSString*)strDate {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[df setLocale:usLocale];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
[df setTimeZone:gmt];
NSDate *date = [df dateFromString:strDate];
if (date) {
return date;
} else {
NSLog(@"Attention!!!!!!!!!!!!!!!!!!!!! - Date format is not valid");
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
date = [df dateFromString:strDate];
if (date) {
return date;
}
}
return nil;
}
答案 4 :(得分:0)
我在SWIFT 3.1中使用它
func convertDateStringToDate(longDate:String) - >串{
router.get('/:id/:slug', function(req, res, next) {
var projectName = 'John Doe Project';
req.breadcrumbs().add({name: projectName, url: '/url/to/project/'});
res.render('projects/index', { title: 'Express', breadcrumbs: req.breadcrumbs()});
});