为什么此代码返回 12:00:05 am (不是00:00:05)? (系统时间格式设置为12小时。)
如果不对新的语言环境进行硬编码,我怎样才能得到我想要的内容? (因为用户&#f; prefs应该保留用户&prefs,并且没有保证/控制该语言环境将为我提供准确的时间格式。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSDate *date = [[NSDate alloc] init];
NSString *currentDateAndTime = [dateFormatter stringFromDate:date];
NSLog(@"%@", currentDateAndTime);
人们说NSDate存储秒数而不存储格式。所以它必须依赖于NSDateFormatter设置的格式,而不是系统时间格式,但事实并非如此。为什么呢?
指定当前区域设置并得到我需要的内容:
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale currentLocale] localeIdentifier]]];
当时间越过中午标记时,它返回00:00:00。就像它过了午夜一样
en_GB
不知道它是如何工作的,所以不确定它是否会在将来正常运作。至于我,最好知道时间是否设置为24小时格式。或者查看区域设置的内部
答案 0 :(得分:1)
感谢有人删除了他的回答。他提到K
骨架的关键 - 是的。它可以在不指定区域设置的情况下工作。
所以无论设置如何,我都会使用这个面具并获得我需要的东西:
[dateFormatter setDateFormat:@"KK:mm:ss"];
答案 1 :(得分:0)
以下是设置日期和时间的方法: -
1)转到系统首选项 - >日期&时间 - >开放语言&区域 请相应地将时间格式检查为24小时制。
2)现在编写以下代码来提取指定的date and time
。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date = [NSDate date];
//Below date formatter will set your date and time based on your default System Pref. settings
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
NSLog(@"%@",[dateFormatter stringFromDate:date]);