我想用yyyy-MM-dd日期格式转换我的系统日期并分配到另一个日期 我的代码是:
NSDate *datenow = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd"];
currDate = [df stringFromDate:datenow];
NSLog(@"currDate ====%@",currDate);
[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *compareDate = [df dateFromString:currDate];
NSLog(@"compareDate ====%@",compareDate);
NSLog就像这样打印 currDate ==== 2014-05-10 compareDate ==== 2014-05-10 00:00:00 +0000
我想在比较日期删除00:00:00 +0000。怎么做。 请帮助我,这是我的时间。
答案 0 :(得分:0)
您可以使用
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
// Getting components of the current date.
NSDateComponents *currentDateComponents = [currentCalendar components:NSCalendarCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSTimeZoneCalendarUnit fromDate:[NSDate date]];
现在你是日期的组成部分(你当然可以传递任何日期而不是[NSDate date]
)你可以使用你想要的每一个,或者你可以进一步使用:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-DD"];
格式化您的日期。
答案 1 :(得分:0)
你说:
我想在比较日期删除
00:00:00 +0000
。怎么做我。
简而言之,如果您不想在UTC字符串yyyy-MM-dd HH:mm:ss +0000
中查看日期,请不要NSLog
NSDate
对象本身。只有NSLog
从NSDateFormatter
中提取的字符串。
但是,您的示例代码暗示了对NSDate
和NSDateFormatter
对象的目的和功能的误解。
NSDate
表示某个时间点,例如格林威治标准时间晚上8点,即巴黎CEST晚上10点或纽约时间下午4点。但是NSDate
并不包括时区,格林尼治标准时间晚上8点和美国东部时间晚上10点以及美国东部时间下午4点都代表相同的时间点。
NSDateFormatter
可用于转换为NSDate
个对象的字符串表示形式(例如,以便在格林威治标准时间晚上8点,巴黎的用户看到"晚上10点&#34 ;而纽约的用户看到"下午4点")。
但是使用日期格式化程序将日期转换为字符串是没有意义的(默认情况下,此字符串将在本地时区中),然后将该字符串转换回日期(这次说该字符串表示UTC中的日期/时间,而不是)。
这相当于我在美国东部时间下午4点在纽约时代广场的一位法国人旁边,并告诉他#格林威治标准时间下午4点及#34;他将在那里只是把我视为一个疯狂的美国人,他太无知了,知道格林威治标准时间晚上8点(或根据他的观察,在巴黎的CEST晚上10点)。
所以,也许你可以退一步告诉我们你要做什么,因为你问题中的代码没有意义。如果使用特定时区将日期转换为带有日期格式化程序的字符串,则如果要将其转换回日期,则必须使用相同的时区。 (或者您必须使用明确关于时区的日期格式;这就是NSLog
使用yyyy-MM-dd HH:mm:ss +0000
格式的原因,因此它明确指出NSDate
的时间点{ {1}}代表。)
答案 2 :(得分:0)
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setLocale:[NSLocale systemLocale]];
[formater setDateFormat:@"yyyy-MM-dd"];
NSString *todayString = [formater stringFromDate:[NSDate date]];
NSLog(@"todayString ====%@", todayString);