【问题标题】:iphone: NSDateFormatter how to show time in 24 hours format?iphone:NSDateFormatter 如何以 24 小时格式显示时间?
【发布时间】:2023-03-07 13:06:01
【问题描述】:
NSDateFormatter *formatter1=[[NSDateFormatter alloc]init];
[formatter1 setDateFormat:@"HHmmss MMddyyyy"];
NSDate *finalDate =[formatter1 dateFromString:testTime];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[lblpickUpTime setText:[formatter stringFromDate:finalDate]];
[formatter release];
[formatter1 release];

其中 testTime = @"201518 07122011";我希望在 24 小时内得到结果

例如20.15 而不是 8:15 PM

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: iphone objective-c ios nsdate nsdateformatter


    【解决方案1】:

    设置试试

    [formatter setDateFormat:@"HH:mm"];  // replacement for [formatter setTimeStyle:NSDateFormatterShortStyle];
    

    替代方法(不使用任何格式化程序):

    NSRange range;
    range.location = 2;
    range.length = 2;
    NSString *dateString = [NSString stringWithFormat:@"%@:%@",[myString substringToIndex:2],[myString substringWithRange:range]];
    

    【讨论】:

    • 我只想要时间而不是日期
    • 我的第二个问题怎么样,因为我做了两个格式化程序,有没有更好的方法来进行这种转换?
    • 您可以更改第一个格式化程序本身的格式。 [formatter1 setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];。不需要第二个格式化程序。
    • @akshay 他没有从日期转换..他的输入也是一个字符串..所以你的解决方案不起作用
    • 请注意,如果用户在设备上关闭了 24 小时时钟,则无论您提供何种格式字符串,它都会始终返回 8:15 PM - Apple Docs
    【解决方案2】:

    如果您指定格式而不是使用NSDateFormatterShortStyle,则可以使用您想要的任何格式输出。例如:

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];
    [lblpickUpTime setText:[formatter stringFromDate:finalDate]];
    [formatter release];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多