Tôi đã có một drawRect làm cho một dòng thời gian một chút giống như iCal. Tôi sử dụng vòng lặp for để viết thời gian dọc theo chế độ xem cuộn. Tôi đã tự hỏi nếu A) có cách xác định xem người dùng đã chọn đồng hồ 12 hoặc 24 giờ trong cài đặt hệ thống và B) nếu có cách hiệu quả hơn để thay đổi nhãn thời gian, sau đó gọi truy vấn 'if' mỗi lần vượt qua của vòng lặp 'for'. CheersTìm xem người dùng có thích 12/24 giờ không?
Trả lời
NSDate *today = [NSDate date];
NSString *formattedString = [NSDateFormatter localizedStringFromDate:today dateStyle: kCFDateFormatterNoStyle timeStyle: kCFDateFormatterShortStyle];
NSRange foundRange;
foundRange = [formattedString rangeOfString:"am" options:NSCaseInsensitiveSearch];
if(foundRange.location == NSNotFound) {
foundRange = [formattedString rangeOfString:"pm" options:NSCaseInsensitiveSearch];
}
BOOL isAMPMSettingOn = (foundRange.location != NSNotFound);
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
if([[dateFormatter dateFormat] rangeOfString:@"a"].location != NSNotFound) {
// user prefers 12 hour clock
} else {
// user prefers 24 hour clock
}
Đây thực sự là câu trả lời hay nhất, vì nhiều quốc gia chỉ định AM và PM là a.m. và p.m .. – MiguelB
@Leuguimerius nhưng một số ngôn ngữ như tiếng Trung sử dụng các ký tự hoàn toàn khác nhau cho AM và PM. Xem câu trả lời của tôi http://stackoverflow.com/a/23621308/72176 để biết cách xử lý. –
@WilliamDenniss Brilliant! Giải quyết mọi thứ. Tôi đã không có ý tưởng như vậy định dạng tồn tại. – MiguelB
Những câu trả lời trước đó cho rằng "AM" và "PM" biểu tượng được thể hiện bằng ký tự La Mã. Mã này được điều chỉnh từ keyur bhalodiya thực hiện công việc tốt hơn khi xử lý các ngôn ngữ như tiếng Trung, bằng cách sử dụng các phương pháp AMSymbol
và PMSymbol
của NSDateFormatter
.
-(BOOL)uses24hourTime
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setDateStyle:NSDateFormatterNoStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
return (amRange.location == NSNotFound && pmRange.location == NSNotFound);
}
- 1. Kiểm tra xem người dùng đã đăng nhập có thích Trang Facebook của tôi không
- 2. Kiểm tra xem người dùng có đang sử dụng IE với chế độ tương thích
- 3. Cách nhanh hơn để tìm hiểu xem người dùng có tồn tại trên hệ thống không?
- 4. Trên Unix, tìm xem người dùng đã thực hiện chương trình có phải là root không?
- 5. Cách liền mạch để kiểm tra xem người dùng có thích trang
- 6. Thuật toán để tìm nội dung mà người dùng muốn dựa trên những người dùng khác thích
- 7. Cocoa xem người dùng Resizable
- 8. Tôi có nên bắt lỗi không bao giờ xảy ra với người dùng thông thường không?
- 9. Có plugin JQuery nào để chuyển đổi múi giờ UTC thành múi giờ của người dùng cục bộ không?
- 10. Chế độ xem chú thích tùy chỉnh cho người dùng không di chuyển chế độ xem bản đồ
- 11. Kiểm tra xem người dùng có ở trong nhóm
- 12. Sharepoint: tìm hiểu xem người dùng hiện tại có thuộc nhóm được chỉ định
- 13. Tìm ngôn ngữ người dùng hiện tại
- 14. Múi giờ cho những người dùng khác nhau
- 15. Chuyển đổi ngày giờ được người dùng nhập vào UTC
- 16. Kiểm tra xem người dùng mysql có tồn tại
- 17. Kiểm tra xem người dùng cụ thể có vai trò
- 18. Cách xác định xem người dùng Facebook 'Thích' một trang nhất định
- 19. cách phát hiện xem bàn phím người dùng có thuộc AZERTY trong Java không?
- 20. Cách chọn múi giờ thân thiện với người dùng hơn?
- 21. Cách hiệu quả nhất để tìm người dùng nào thích một tweet cụ thể?
- 22. Lưu trữ người dùng Tùy chọn múi giờ
- 23. Ngày và giờ hiển thị bằng ngôn ngữ người dùng
- 24. Mongoose.js: Tìm người dùng theo tên người dùng Giá trị LIKE
- 25. Symfony2: Nơi đặt múi giờ do người dùng xác định
- 26. MySQL: giữ múi giờ của máy chủ hoặc múi giờ của người dùng?
- 27. JavaScript có thể phát hiện xem trình duyệt của người dùng có hỗ trợ gzip không?
- 28. Kiểm tra xem người dùng có đăng ký khóa học Moodle cụ thể không
- 29. Cách kiểm tra xem người dùng có đăng nhập hay không (cách sử dụng đúng user.is_authenticated)?
- 30. Phát hiện xem người dùng web hiện có đăng nhập vào Google không?
Bạn cần phải cẩn thận. Nếu người dùng đã đặt chế độ 12/24 giờ trong Cài đặt trái với ngôn ngữ, thì NSDateFormatter (và có thể một số người khác) bỏ qua sự hiện diện/vắng mặt của bất kỳ bộ định danh 'a' nào và cung cấp (hoặc không) giá trị AM/PM dựa trên Cài đặt chế độ 12/24 giờ. Đó là tất cả khá screwy. –