gpt4 book ai didi

objective-c - 检索 lastModified 时的日期格式

转载 作者:行者123 更新时间:2023-12-01 07:45:57 25 4
gpt4 key购买 nike

我正在比较两个文件(一个本地文件和一个在 Amazon S3 服务器上)的文件上次修改日期。我正在使用 AWS IOS SDK 框架,可以成功请求和接收来自 S3 服务器的响应,但我无法理解返回的 s3 日期的格式。

在我的本地机器上,lastModified 的日期格式是“2011-07-21 18:43:15 -0400”,而驻留在 S3 服务器上的文件是“2011-10-15T16:25:49.000Z” .

我的本​​地信息是通过以下方式获得的:

    NSFileManager *fm  = [NSFileManager defaultManager];
NSDictionary *attr = [fm attributesOfItemAtPath:filePath error:nil];
NSDate *localDate = [attr objectForKey:NSFileModificationDate];

虽然我的 S3 信息是使用

    for (S3ObjectSummary *object in [listObjectsResult objectSummaries]) {
NSDate *s3date = [object lastModified];
}

有谁知道我是否可以将 S3 文件的日期转换为可用于比较这两个日期的格式:

    NSTimeInterval deltaSeconds = [s3Date timeIntervalSinceDate: localDate];

还是我做错了什么?现在我的程序崩溃了

    [NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x200351360. 

可能是因为 s3 日期格式不正确。我对使用 AWS S3 SDK 很陌生,因此非常感谢所有帮助。如果有人也知道这个框架的一些好的教程(除了它附带的演示代码),那就太好了。干杯,特隆

最佳答案

在我看来,[object lastModified] 只是返回一个 NSString 而不是 NSDate 对象,如 documentation 中所述。

NSDateFormatter 可用于在这种情况下从字符串创建一个 NSDate 对象:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'+'mm':'ss.SSS'Z'"];

NSDate *s3date = [dateFormatter dateFromString:[object lastModified]];

[dateFormatter release];

Date Formatting guide 有很多方便的示例。您可能需要稍微调整一下格式字符串,因为我还没有测试过它。

关于objective-c - 检索 lastModified 时的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799418/

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