2017-05-31 28 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"); 
      }