在目标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(¤tTime, &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]; }
更改dateStyle
和timeStyle
以符合您的格式要求。
也许这会更可读:
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]]
玩得开心