繁体   English   中英

将字符串转换为时间格式将返回nil数据

[英]Converting String to Time Format returns nil Data

我的Json是

{
 "MinPerAppointment": "30",
 "OpeningTime": "12:05"    
}

现在,我想添加30到12:05,应该是12:35,我无法获得如何格式化,所以,我尝试使用NSdate

NSString *str_MinPerAppointment = timeDetailData.minPerAppointment;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
NSDate *myDate = [dateFormatter dateFromString:str_MinPerAppointment];

NSString *dateInString = [dateFormatter stringFromDate:myDate];    
NSLog(@"New AppointMentValue :%@",dateInString);

我得到New AppointMentValue 为零

我认为你不需要使用NSDate格式。 只需将HH:MM转换为分钟(或秒,如果您处理它们),做数学然后转换回来。

就像是:

NSString *time = @"12:30";
int addMinutes = 30;
int hh, mm;
if (sscanf([time UTF8String], "%d:%d", &hh, &mm) == 2) {
    int minutes = (hh * 60) + mm;
    minutes += addMinutes;
    hh = minutes / 60;
    mm = minutes - (hh * 60);
    hh %= 24;    // day roll-over
    NSString *newTime = [NSString stringWithFormat:@"%02:%02d", hh, mm];
} else {
    NSLog(@"Invalid time value: %@", time);
}

如果你想使用NSDateFormatter/NSDate试试这个 -

NSString *str_MinPerAppointment = @"30";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
NSDate *myDate = [dateFormatter dateFromString:@"12:05"] ;

NSString *dateInString = [dateFormatter stringFromDate:[myDate dateByAddingTimeInterval:60*[str_MinPerAppointment integerValue]]];

NSLog(@"New AppointMentValue :%@",dateInString);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM