【问题标题】:How detect time settings of device?如何检测设备的时间设置?
【发布时间】:2011-11-07 05:41:09
【问题描述】:

我有一个应用程序,我在其中制作了一个闹钟。在我的应用程序中,问题是当设备日期和时间设置发生变化时,警报标签的文本也发生了变化。例如,如果时间设置设置为 24 小时,则在我的标签文本中最后不显示上午和下午,而当更改设置为 12 小时时,则在标签的文本中显示上午和下午。如何检测日期和时间的设置是什么,以及如何对标签的文本应用验证,无论设置始终以上午和下午模式显示还是以 12 小时设置显示?

提前致谢...

【问题讨论】:

    标签: iphone settings uilabel


    【解决方案1】:
    Use can use this code:
    NSDate *today = [NSDate date];
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        // display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
    
        [dateFormatter setDateFormat:@"HH:mm"];
        NSString *currentTime = [dateFormatter stringFromDate:today];
        NSLog(@"%@",currentTime);
        [dateFormatter release];
    Hear currentTime contains always 24 hour time format.
    
    int hour =  [[[currentTime componentsSeparatedByString:@":"] objectAtIndex:0] intValue];
      if(hour > 12){
    //show PM
    }else{
    //Show AM
    }
    

    【讨论】:

      【解决方案2】:

      只需放置此代码

      [dateFormatter setDateFormat:@"hh:mm a"];
      

      而不是这个

      [dateFormatter setDateFormat:@"HH:mm"];
      

      然后

      NSString *currentTime = [dateFormatter stringFromDate:today];
      NSLog(@"%@",currentTime);
      

      NSLog 将分别以 AM 或 PM 打印当前时间 12 小时格式

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-06
        • 1970-01-01
        相关资源
        最近更新 更多