无法将 12 小时添加到日期 ios

Unable to add 12 hours to date ios

我是 iOS,

的新手

如果我的 NSString 包含 PM,我想添加 12 小时。

我试过这段代码但没有成功

NSString *str = @"1/1/1900 3:00:00 PM"
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss A"];

NSDate *date1 = [formatter dateFromString:str];
NSLog(@"date1 : %@", date1);

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateFormat:@"hh:mm a"];
NSLog(@"Current Date: %@", [formatter1 stringFromDate:date1]);

请帮忙

你很接近,只犯了两个小错误。首先,A 不是有效的日期格式说明符,它应该是 a。其次,要将 12 小时格式转换为 24 小时格式,您需要对第二个格式化程序使用 HH 而不是 hh

我已经修复了代码,运行 测试一下,让我知道。

NSString *str = @"1/1/1900 3:00:00 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// Need lowercase `a`, A is not a valid format
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];
NSDate *date1 = [formatter dateFromString:str];
NSLog(@"date1 : %@", date1);

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
// If you specify the hour to be HH, it will convert the date automaticly to in 24 hour format
[formatter1 setDateFormat:@"HH:mm"];
NSLog(@"Current Date: %@", [formatter1 stringFromDate:date1]);

试试这个!!!

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            [dateFormatter setDateFormat:@"HH.mm"];
            NSString *strCurrentTime = [dateFormatter stringFromDate:[NSDate date]];

            NSLog(@"Check float value: %.2f",[strCurrentTime floatValue]);
            if ([strCurrentTime floatValue] >= 19.00 || [strCurrentTime floatValue]  <= 7.00)
            {

             NSLog(@"It's night time");

            }else
            {
                NSLog(@"It's day time");
            }