gpt4 book ai didi

objective-c - NSDateFormatter 崩溃。怎么会?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:48 28 4
gpt4 key购买 nike

    NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
[timeFormatter setDateFormat:@"h:mm a"];
NSString *fullTime = [timeFormatter stringFromDate:someDateHere];
NSArray *timeParts = [fullTime componentsSeparatedByString:@" "];
timeLabel.text = [timeParts objectAtIndex:0];
ampmLabel.text = [timeParts objectAtIndex:1];

最后一行崩溃

    NSRangeException*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]

这怎么可能?在此代码之前返回的日期没有检查。

最佳答案

来自数据格式化指南文档(日期格式化程序部分 > 使用格式字符串指定自定义格式 > 固定格式):

Although in principle a format string specifies a fixed format, by default NSDateFormater still takes the user’s preferences (including the locale setting) into account. ... In iOS, the user can override the default AM/PM versus 24-hour time setting. This may cause NSDateFormatter to rewrite the format string you set.

换句话说,在设置为 24 小时时间设置的 iOS 设备上,您不会得到“6:02 PM”,您会得到“18:02”,即使您指定了“h:mm”一种”。因此,当您用空格分隔时,您会得到一个值“18:02”,而不是两个值。

关于objective-c - NSDateFormatter 崩溃。怎么会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610724/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com