在目标c中以自定义格式获取string中的当前时间

我希望当前时间以string的格式如下。

dd-mm-yyyy HH:MM

怎么样?

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

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"dd-MM-yyyy HH:mm"]; NSDate *currentDate = [NSDate date]; NSString *dateString = [formatter stringFromDate:currentDate]; 

或者像Carl说的那样使用NSDateFormatter ,或者只使用旧的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); 

这是一个简单的解决scheme:

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

更改dateStyletimeStyle以符合您的格式要求。

也许这会更可读:

  NSDateFormatter *date = [[NSDateFormatter alloc] init]; [date setDateFormat:@"HH:mm"]; NSString *dateString = [date stringFromDate:[NSDate date]]; [self.time setText:dateString]; 

首先我们创build一个名为date的 obj-c内置的NSDateFormatter ,然后我们通过[[NSDateFormatter alloc] init]来应用它; 。 之后,我们对代码处理器说,我们希望我们的date有HOUR / MINUTE / SECOND。 最后,我们应该使我们的date是一个string来处理标签的alert或set value,为此我们应该使用NSString方法创build一个string,然后我们使用这个: [date stringFromDate:[NSDate date]]

玩得开心