IOS NSDate从string只有时间
我的任务是parsingstring与NSDate的时间。 我用下面的代码做得很好:
NSString* timeStr = @"15:00:00" NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; [formatter setDateFormat:@"HH:mm:ss"]; NSDate* result = [formatter dateFromString:timeStr];
但结果我得到2000-01-01 15:00:00 CET ,我不明白为什么date设置为2000-01-01 ,而不是2001-01-01 (这是参考date)或1970-01-01 。 而2000-01-01似乎不是随机值… 🙂
如果你想要它只是一个date部分的string,只需使用一个dateFormatter,类似于你之前做的。
NSString* timeStr = @"15:00:00"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; [formatter setDateFormat:@"HH:mm:ss"]; NSDate* result = [formatter dateFromString:timeStr]; [formatter setDateFormat:@"YYYY-MM-DD"]; timeStr = [formatter stringFromDate:result];
或者你需要直接在date格式化程序中设置datestring,这是因为如果你在date格式化程序中指定时间string,你会得到date和时间string的组合
NSString* dateStr = @"2001-01-01"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; [formatter setDateFormat:@"YYYY-MM-DD"]; NSDate* result = [formatter dateFromString:dateStr];
你没有在时间之外传递任何信息。 因此,您的NSDate中的任何其他值都是未定义的。
- 迅速发展的世界:SE-0185综合了可量化和可哈希化的一致性
- nil合并运算符’??’的左侧 具有非可选类型’Int’,因此从swift 1.2到4转换后,右侧是从不使用警告
- UIDatePicker错误? UIControlEventValueChanged达到最小内部
- UIGraphicsGetImageFromCurrentImageContext() – 内存泄漏
- 无法在Uitable View(ios7)上禁用多点触控
- 我怎么能找到下周末的斯威夫特
- 更改手机方向,但范围variables不刷新
- 尝试从应用程序发送电子邮件,并不起作用 – 斯威夫特(iOS)
- 为什么你应该检查一个静态variables为零,如果它在上一行被初始化为零?