2017-05-31 27 views
-1

我是新来的iOS,无法12小时添加到最新的ios

我想12小时添加到我的NSString它是否包含在它PM

我想这个代码,但没有得到成功

NSString *str = @"1/1/1900 3:00:00 PM" 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss A"]; 

NSDate *date1 = [formatter dateFromString:str]; 
NSLog(@"date1 : %@", date1); 

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init]; 
[formatter1 setDateFormat:@"hh:mm a"]; 
NSLog(@"Current Date: %@", [formatter1 stringFromDate:date1]); 

请帮

+0

想要添加12个小时,或者要将日期转换为小时, –

+1

可以举个例子吗? – vp2698

+0

我想添加12小时到我的NSString,如果它包含PM。你想添加12个小时吗? –

回答

0

你接近,只是做了两个小错误。首先,A不是有效的日期格式说明符,它应该是a。其次,要将12小时格式转换为24小时格式,您需要使用HH而不是hh作为第二个格式化程序。

我修复了代码,运行测试并通知我。

NSString *str = @"1/1/1900 3:00:00 PM"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
// Need lowercase `a`, A is not a valid format 
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 
NSDate *date1 = [formatter dateFromString:str]; 
NSLog(@"date1 : %@", date1); 

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init]; 
// If you specify the hour to be HH, it will convert the date automaticly to in 24 hour format 
[formatter1 setDateFormat:@"HH:mm"]; 
NSLog(@"Current Date: %@", [formatter1 stringFromDate:date1]); 
+1

第三,您需要为格式化程序设置区域设置,否则系统将通过系统设置覆盖12/24设置。 – Sulthan

+0

Thanx男人,它的作品像魅力 –

+0

@Sulthan你忘了提到该语言环境需要'en_US_POSIX'。 – rmaddy

-2

试试这个

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
      [dateFormatter setDateFormat:@"HH.mm"]; 
      NSString *strCurrentTime = [dateFormatter stringFromDate:[NSDate date]]; 

      NSLog(@"Check float value: %.2f",[strCurrentTime floatValue]); 
      if ([strCurrentTime floatValue] >= 19.00 || [strCurrentTime floatValue] <= 7.00) 
      { 

      NSLog(@"It's night time"); 

      }else 
      { 
       NSLog(@"It's day time"); 
      }