gpt4 book ai didi

iOS : Switching between 12/24 hour times from strings

转载 作者:技术小花猫 更新时间:2023-10-29 10:06:45 24 4
gpt4 key购买 nike

有趣的问题让我很困惑。

我从服务器到设备接收字符串时间。然后我将其转换为 NSDate。当设备设置为显示 24 小时时间时,生活很好。

现在我正在一台设置为 12 小时的设备上对其进行测试。一切都停止了。日期返回为空

我第一次有

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];

非常适合显示 24 小时制而非 12 小时制的设备。

然后我尝试了

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];

直到中午 12 点之前都可以正常工作,然后所有日期都返回为 null

更新

我也尝试过添加“a”,但这仍然会导致返回 null

 if (startDate == nil)
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];
}

更新 2

加local,加:ss加a all还是不行

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *twelveHourLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
dateFormat.locale = twelveHourLocale;
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];

最佳答案

它很接近......我认为你需要:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:locale];
[dateFormatter setDateFormat:@"HH:mm"];
startDate = [dateFormatter dateFromString:(NSString *)self.startTime];

关于iOS : Switching between 12/24 hour times from strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254102/

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