时间格式所以只有4位数,中间有一个“:”

时间:2014-08-04 04:00:36

标签: ios objective-c string-formatting

我想要连接的NSString我必须以“00:00”格式输出,0是连接字符串中的数字。如果NSString中没有足够的字符,则其他数字为0.

如果超过4位数,我想只有最右边的数字。 我以前在Java中做过这个,我假设它也可以在Objective-C中使用。

UIButton *button = sender;
NSString *concatenated = [self.input stringByAppendingString: button.titleLabel.text];
self.input = concatenated;
self.userOutput.text = self.input;

例如,我可能会得到“89”作为我的连接字符串。然后我想,self.input = 00:89。

OR

如果我从连接的字符串中得到89374374,那么我想要self.input = 43:74。

我希望我很清楚

3 个答案:

答案 0 :(得分:2)

以下方法应该提供所需的输出:

- (NSString *)getFormattedTimeStringFromString:(NSString *)string
{
    int input = [string intValue];
    int mins = input % 100;
    input /= 100;
    int hours = input % 100;
    return [NSString stringWithFormat:@"%02d:%02d", hours, mins];
}

您可以通过致电

来使用此功能
self.input = [self getFormattedTimeStringFromString:concatenated];

答案 1 :(得分:-1)

像这样:

NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"HH:mm"];
NSString *dateTimeStr = [df stringFromDate:[NSDate date]];

答案 2 :(得分:-1)

if ([concatenated length] == 2) {

        self.input = [NSString stringWithFormat:@"00:%@",concatenated];
}
else
{
        NSString *test = [concatenated substringFromIndex:[concatenated length] -4];
        self.input = [NSString stringWithFormat:@"%@:%@",[test substringToIndex:2],[test substringFromIndex:[test length]-2]];

}

请尝试以上代码,如果[concatenated length]为3或1,则会失败,相应地进行修改