【发布时间】:2010-12-13 16:23:38
【问题描述】:
我希望当前时间采用以下格式的字符串。
dd-mm-yyyy HH:MM
怎么做?
【问题讨论】:
标签: iphone objective-c datetime nstimer
我希望当前时间采用以下格式的字符串。
dd-mm-yyyy HH:MM
怎么做?
【问题讨论】:
标签: iphone objective-c datetime nstimer
你想要一个date formatter。这是一个例子:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];
NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
【讨论】:
a 是上午/下午时段的格式字符串。 unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns
如 Carl 所说,要么使用 NSDateFormatter,要么只使用旧的 strftime,这也是完全有效的 Objective-C:
#import <time.h>
time_t currentTime = time(NULL);
struct tm timeStruct;
localtime_r(¤tTime, &timeStruct);
char buffer[20];
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct);
【讨论】:
NSLog(@"%s", buffer)。
这是一个简单的解决方案:
- (NSString *)stringWithDate:(NSDate *)date
{
return [NSDateFormatter localizedStringFromDate:date
dateStyle:NSDateFormatterMediumStyle
timeStyle:NSDateFormatterNoStyle];
}
更改dateStyle 和timeStyle 以符合您的格式要求。
【讨论】:
date 对象作为参数传递。
也许这将更具可读性:
NSDateFormatter *date = [[NSDateFormatter alloc] init];
[date setDateFormat:@"HH:mm"];
NSString *dateString = [date stringFromDate:[NSDate date]];
[self.time setText:dateString];
首先,我们在 obj-c 中创建一个 NSDateFormatter,其名称为 date,然后我们通过 [[NSDateFormatter alloc] init]; 应用它。之后,我们对代码处理器说我们希望我们的日期具有 HOUR/MINUTE/SECOND。 最后,我们应该让我们的日期成为一个字符串以使用警报或设置标签的值,为此我们应该使用 NSString 方法创建一个字符串,然后我们使用这个:[date stringFromDate:[NSDate date ]]
玩得开心。
【讨论】: