-3

我有一串

NSString *timeStr =@"04:57PM";

这是我的日期格式化程序

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mma"];    

将 NSString 转换为 NSDate

NSDate *date=[dateFormat dateFromString:timeStr];
NSLog(@"date is :::%@",date); 

日志中的输出是

date is :::1970-01-01 11:27:00 +0000.

我能知道该怎么做才能得到输出 date is :::04:57PM

4

4 回答 4

1

您需要使用相同NSDateFormatterstringFromDate方法来获取相同的字符串。您的日期可能会有所不同,因为您尚未在NSDateFormatter.

于 2013-05-10T10:40:50.107 回答
1

你不能。您不能这样做的原因是,内部NSDate只不过是一个简单的双精度数,表示自参考点以来经过的时间量。当您想使用将其转换回字符串时,它只会变为下午4:57NSDateFormatter

这样想,一个时间点在全世界都是一样的。它只是根据您所在的位置进行不同的测量。 NSDate就是这一点,并NSDateFormatter帮助您获得最终测量结果。它将始终根据 GMT 记录。

于 2013-05-10T10:49:48.570 回答
-2

而不是这个

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"hh:mma"];

用这个

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"hh:mm a"];
于 2013-05-10T10:40:25.540 回答
-2

您尝试以下代码:

代替

[dateFormat setDateFormat:@"hh:mma"];

[dateFormat setDateFormat:@"h:mm a"];

希望这会帮助你。

于 2013-05-10T10:40:41.117 回答