NSDate *My_StartDate,*My_EndDate ;
NSDateFormatter * df= [[NSDateFormatter alloc]init];
[df setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
My_StartDate = [df dateFromString:@"01/05/2010 10:15:33"];
My_EndDate = [df dateFromString:@"01/05/2010 10:45:33"];
NSLog(@"%@",My_StartDate);
NSLog(@"%@",My_EndDate);
在日志中我为my_startdate获取类似的内容,如2010-05-01 04:45:33 +0000,结束日期为2010-05-01 05:15:33 +0000而不是我应该有值开始日期为2010-05-01 10:15:33 +0000,结束日期为2010-05-01 10:45:33 +0000
答案 0 :(得分:1)
尝试使用以下功能:
-(NSString *)getDateStringFromDate :(NSDate *)dateValue{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setTimeStyle:NSDateFormatterShortStyle];
[timeFormat setDateFormat:@"HH:mm:ss"];
//[timeFormat setDateFormat:@"HH:mm"];
//[timeFormat setDateFormat:@"HH:mm a"];
////
NSString *theDate = [dateFormat stringFromDate:dateValue];
NSString *theTime = [timeFormat stringFromDate:dateValue];
NSLog(@"\n"
"theDate: |%@| \n"
"theTime: |%@| \n"
, theDate, theTime);
return theDate;
}
根据需要更改数据格式。
如有任何困难,请告诉我。
干杯。
答案 1 :(得分:0)
显示格式为GMT + 4.30时。它只显示那样。当您使用DateFormatter将该日期转换为字符串时,它会给出相同的日期(无论您想要的开始日期为01/05/2010 10: 15:33,结束日期为01/05/2010 10:45:33)。
NSDateFormatter * dateformatter= [[NSDateFormatter alloc]init];
[dateformatter setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSString *dat = [dateformatter stringfromDate:My_StartDate];
然后你会得到输出为01/05/2010 10:15:33
答案 2 :(得分:0)
这显示的是遵循美国标准时间字符串的日期,但由于这个原因,您在制作逻辑时没有任何问题。此外
[df setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
此格式使用12小时格式(表示下午2:03和凌晨2:03),日期对象从不使用am和pm来显示日期对象值,但是当您正确转换它时,它会为您提供正确的日期和时间。
如果您觉得遇到任何问题,请使用不同的区域设置。
答案 3 :(得分:0)
您可能需要在此处将日期格式化程序的时区设置为GMT
。使用
[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
在进行dateFromString:
来电之前。这会给你你想要的东西。
答案 4 :(得分:0)
只需在您的代码中更新:
我可能会认为你的时间是24小时格式,所以当时你需要使用这个....除此之外你需要设置时区。
点击此区域链接: http://unicode.org/reports/tr35/tr35-6.html#Date%5FFormat%5FPatterns
[df setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
to
[df setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
你完成了;)