【问题标题】:Display just the 12 Hour Time format from an ISO 8601 Timestamp仅显示 ISO 8601 时间戳中的 12 小时时间格式
【发布时间】:2013-02-27 19:51:18
【问题描述】:

所以我想在我的 iOS 应用程序的标签中显示从我们的服务器传递的时间,但我在试图弄清楚如何设置正确的 NSDateFormatter 时遇到了麻烦。因此,例如,我以这种格式从服务器获取此时间戳:2013-02-27T18:15:00-0800,我基本上想在标签中显示“10:15 AM”,但到目前为止我还没有运气。我在下面尝试了这个:

NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
            [timeFormatter setDateFormat:@"HH:mm a"];
            NSString *newTime = [timeFormatter stringFromDate:timeDate];
            NSLog(@"the new time is: %@", newTime);

但输出显示我的时间为晚上 18:15。

我一直在环顾四周并尝试在 NSDateFormatter 中尝试不同的组合,但我似乎找不到合适的组合,任何帮助将不胜感激,因为我知道这是我忽略的简单事情,但我只是可以没找到。

【问题讨论】:

标签: ios


【解决方案1】:

您正在使用 24 小时格式的 HH 设置时间格式,为了设置 12 小时格式使用以下代码,虽然不必写太多,正如代码行所说的那样。

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

为了避免时区问题,请确保您也为格式化程序设置了时区

[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"CET"]];

【讨论】:

  • 有点简洁...请编辑答案并说明这是做什么的。
【解决方案2】:

HH 代表 24 小时。

hh satnds 12 小时。

相应地改变。

【讨论】:

  • 我知道我没有看到像这样简单的东西。尽管获取 12 小时格式是正确的,但看起来格式化程序也没有使用偏移量,因此上面的示例显示为下午 6:15 而不是上午 10:15。谢谢。
【解决方案3】:

您需要使用hh,而不是HH。前者为 12 小时,后者为 24 小时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2013-12-06
    • 2020-11-23
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多