来自NSString的NSDate给出空结果
我正在使用下面的代码来生成NSDate -> NSString
+(NSString *)getCurrentTime { NSDate *now = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy hh:MM:SS a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSString* str =[dateFormatter stringFromDate:now]; [dateFormatter release]; NSLog(@"%@",str); return str; }
上面的代码中的一切都很好。 我正在使用上面的代码在数据库中存储string。 现在,检索该string给我NULL
。 以下是我的代码以特定格式检索date
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:MM:SS a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSDate *dt =[dateFormatter dateFromString:crdInfo.swipeTime]; NSLog(@"Date : %@",dt); [dateFormatter release];
我应该如何检索或存储特定格式? 我的crdInfo.swipeTime正在检索string属性…
由于Narayanabuild议您需要使用与存储格式相同的格式检索date。 检索它如下:
NSDateFormatter *reDateFormatter = [[NSDateFormatter alloc] init]; [reDateFormatter setDateFormat:@"dd-MM-yyyy hh:MM:SS a"]; [reDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSDate *dt = [reDateFormatter dateFromString:str]; NSLog(@"The Date : %@",dt); [reDateFormatter setDateFormat:@"hh:MM:SS a"]; NSString *currentTime = [reDateFormatter stringFromDate:dt]; NSLog(@"%@",currentTime);
希望它可以帮助你。
首先,为什么不直接存储NSDate对象或纪元时间戳呢? 这将给你未来更多的灵活性。
现在你的问题,我怀疑这是由于你的NSDateFormatter的configuration,你保存在一种格式,并试图将其转换为使用不同格式的date。 使格式相同,然后重试。 如果你想以不同的方式显示它,你可能需要使用存储的格式将其转换为NSDate,然后再次使用另一个date格式化程序将其作为string以您想要的格式获取。
尝试格式化为dd-MM-yyyy hh:mm:ss
a。
你写了dd-MM-yyyy hh:MM:SS
a在这里MM
中的MM
hh:MM:SS
给出了这个格式无法识别的月份,并且没有任何要点写upercase SS的秒数
希望你能理解。
- 如何使用iPhone在iPhone和Apple Watch之间共享数据?
- WhatsApp像iOS应用程序中的位置共享
- 如何保持导航栏消失与MSMessagesViewController – > UIContainerView – > UINavigationController – > UITableViewController?
- 作为iOS开发人员实习生的12周-第三周
- GKMatchmaker的findMatchForRequest邀请从未收到
- PhoneGap与Django后端
- cordova/一般:为不同的屏幕布局开发最简单的方法?
- Swift World:设计模式-简单工厂
- 在Geo-Fencing中多次调用区域监控方法