【问题标题】:iOS Date 12/24 hour formatting (Objective C)iOS 日期 12/24 小时格式(目标 C)
【发布时间】:2016-10-02 09:37:59
【问题描述】:

我需要将 12 小时制时间格式转换为 24 小时制格式。特别是日期的 PM 部分,因为我与之通信的 API 只接受 24 小时格式。

例子:

02:00 PM需要转换成14:00

08:30 PM需要转换成20:30

我已经尝试了几种方法并且可能已经接近了,但我似乎无法完全正确。

【问题讨论】:

    标签: ios objective-c nsdate nsdateformatter


    【解决方案1】:

    为此,您需要使用 NSDateFormatter 并将时间格式转换为 24 小时格式。

    NSString *time12Hours = @"02:00 PM";
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"hh:mm a"];
    NSDate *date = [formatter dateFromString:time12Hours];
    [formatter setDateFormat:@"HH:mm"];
    NSString *time24Hours = [formatter stringFromDate:date];
    

    【讨论】:

    • 示例:值为“02:00 PM”。 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [格式化程序 setDateFormat:@"hh:mm a"]; NSDate *date = [格式化程序 dateFromString:value]; NSLog(@" 12 小时日期:%@", date);当我记录这个时,我得到空值。 (抱歉缺少代码突出显示)。
    • 您的回答很有帮助。我仍然需要添加以下内容才能使其正常工作: NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; [格式化程序 setLocale:locale];
    • @Tatter 那是需要设置本地时区,你没有在这里回复你没有得到完美的时间。
    【解决方案2】:

    iPhone 格式字符串在Unicode format 中。链接后面是一个表格,解释了上面所有字母的含义,因此您可以自己构建。

    你可以试试这个网站来找到你的格式字符串nsdateformatter.com whit NSDateFormatter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-09
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 2021-08-14
      • 1970-01-01
      • 2016-05-09
      相关资源
      最近更新 更多