gpt4 book ai didi

ios - 格式化 NSDate 不起作用

转载 作者:行者123 更新时间:2023-11-28 20:24:06 25 4
gpt4 key购买 nike

我有以下方法,我想用它来返回修改日期:

- (NSDate *)getCreationDate:(NSFileManager *)fileManager atPath:(NSString *)path {
NSError *error;
NSDate *date;
NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:&error];

// Get creation date.
if (!error) {
if (fileAttributes != nil) {
NSDate *creationDate = [fileAttributes fileCreationDate];
NSString *dateString = [creationDate description];
NSLog(@"Unformatted Date Created: %@", dateString);

// Format date.
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss"];
date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
NSLog(@"Formatted Date Created: %@", [date description]);
} else {
NSLog(@"File attributes not found.");
}
} else {
NSLog(@"%@", [error localizedDescription]);
}

return date;
}

问题是格式化日期返回为空。

输出:

未格式化的创建日期:2013-02-06 04:44:57 +0000

格式化的创建日期:(空)

最佳答案

没有格式化的 NSDate 这样的东西。它只是一个没有格式的日期。 description 方法用于调试和记录,并使用它想要的任何格式。

NSDateFormatter 用于创建具有指定格式的 NSDate 的 NSString 表示。您的方法可以用这个替换并做完全相同的事情。

- (NSDate *)getCreationDate:(NSFileManager *)fileManager atPath:(NSString *)path {
NSError *error;
NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:&error];

// Get creation date.
if (!error) {
if (fileAttributes != nil) {
return [fileAttributes fileCreationDate];
} else {
NSLog(@"File attributes not found.");
}
} else {
NSLog(@"%@", [error localizedDescription]);
}

return nil;
}

当你想显示日期时,格式化它。使用 NSDateFormatter 将其转换为格式化的 NSString。

另外,线条

    date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];

创建一个新日期,然后将其丢弃。第一行是不必要的。

关于ios - 格式化 NSDate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com