簡體   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