Bur*_*000 15 objective-c nsdate nsdateformatter ios
有趣的问题让我感到震惊.
我收到从服务器到设备的字符串时间.然后我将其转换为NSDate.当设备设置为24小时显示时,生活是美好的.
现在我在设置为12小时的设备上测试它.一切都停止了.日期将返回null
我第一次
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
Run Code Online (Sandbox Code Playgroud)
适用于显示24小时但不是12小时的设备.
然后我试过了
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
Run Code Online (Sandbox Code Playgroud)
这工作正常到中午12点,然后所有日期都返回为null
更新
我也试过添加"a"但这仍然导致返回null
if (startDate == nil)
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];
}
Run Code Online (Sandbox Code Playgroud)
更新2
添加本地,添加:添加全部的ss仍然无法正常工作
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];
Run Code Online (Sandbox Code Playgroud)
Ian*_*n L 18
它很接近......我认为你需要:
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];
Run Code Online (Sandbox Code Playgroud)
小智 7
你可以试试这个
12 to 24 hour format
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[df setTimeZone:[NSTimeZone systemTimeZone]];
[df setDateFormat:@"hh:mm a"];
NSDate* newDate = [df dateFromString:LocationTrackingStartTime];
[df setDateFormat:@"HH:mm"];
newDate = [df stringFromDate:newDate];
24 to 12 hour format
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[df setTimeZone:[NSTimeZone systemTimeZone]];
[df setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
NSDate* newDate = [df dateFromString:[df stringFromDate:[NSDate date]]];
[df setDateFormat:@"hh:mm a"];
newDate = [df stringFromDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12840 次 |
最近记录: |