我正在使用几个NSDateComponents来显示一个时钟,它的各个值在整个屏幕上都是分开的,但我遇到了格式化问题。
秒显示的是1-60而不是00-59,小时的格式是24小时而不是12。有没有办法不同地格式化它们?
现在,我已经获得了作为NSInteger传入的值,将它们传递给NSString,并将字符串应用于UILabel。有人能帮上忙吗?
有没有我应该使用的@"%"格式?(现在我正在使用@"d"),如果是这样的话,我在哪里可以找到这些不同类型的列表?
发布于 2011-02-26 01:52:16
因为您已经将值设置为NSInteger,然后假设它们首先被称为minutes和hours:
minutes -= 1; // convert 1 -> 60 to 0 -> 59
if(hours > 12) hours -= 12; // convert 13 -> 24 to 1 -> 12现在使用"%02d" - broken对它们进行格式化,这是0-零填充,2-字段宽度,d-十进制整数。
您可以通过查找printf上的文档找到所有格式规范( %@ for objects除外
发布于 2011-02-26 00:55:45
您可以使用NSDateFormatter将日期和时间格式化为NSStrings。
NSDate *date = [dateFormatter dateFromString:@"01.02.1989"];
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
// Convert my date object into yyyy-mm-dd string object
[dateFormatter1 setDateFormat:@"yyyy-MM-dd"];
NSString *formattedStringDate = [dateFormatter1 stringFromDate:date];这里有一个日期/时间格式化代码列表:Date formatting
我希望这能帮到你!N
发布于 2011-02-26 00:56:28
我之前也遇到过类似的问题,试着看看这个链接。它列出了所有不同的日期格式化程序及其工作方式。http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
对于您的特定问题,我认为您需要h: mm :ss。h表示小时,mm表示分钟,ss表示秒(s可能是0填充的那个,我不确定),a给出AM/PM格式。另外,%d是整数的正确格式,我相信%@是其他字符串的正确格式。
希望这能有所帮助。
https://stackoverflow.com/questions/5120049
复制相似问题