59

我想要字符串中以下格式的当前时间。

dd-mm-yyyy HH:MM

如何?

4

4 回答 4

144

你想要一个日期格式化程序。这是一个例子:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];

NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
于 2009-11-06T01:53:08.773 回答
15

要么NSDateFormatter像 Carl 说的那样使用,要么只使用 good old strftime,这也是完全有效的 Objective-C:

#import <time.h>
time_t currentTime = time(NULL);
struct tm timeStruct;
localtime_r(&currentTime, &timeStruct);
char buffer[20];
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct);
于 2009-11-06T03:29:44.147 回答
8

这是一个简单的解决方案:

- (NSString *)stringWithDate:(NSDate *)date
{
  return [NSDateFormatter localizedStringFromDate:date
                                        dateStyle:NSDateFormatterMediumStyle
                                        timeStyle:NSDateFormatterNoStyle];
}

更改dateStyleandtimeStyle以匹配您的格式要求。

于 2014-02-25T05:42:54.667 回答
3

也许这将更具可读性:

    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]]

玩得开心。

于 2014-06-04T12:47:21.793 回答