Google云端硬盘文件:设置本地修改日期

时间:2013-09-18 10:08:37

标签: ios macos google-drive-api nsdateformatter

我需要将本地文件修改日期设置为Google云端硬盘中的文件。首先,我尝试使用不起作用的drive.file.insert API进行设置。在SO中讨论了可以使用drive.file.patch API完成文件修改。以下是Am用于更新文件修改日期的代码。但是当我尝试这个时,我会收到错误。

  

发生错误:错误Domain = com.google.GTLJSONRPCErrorDomain Code = 400"无法完成操作。 (无效的格式:无效格式:" 2013-09-261T15:09:57Z"格式错误的时间为" 1T15:09:57Z")"

代码:

-(void)updateFileModificationDate:(GTLDriveFile*)file
{    
    NSDate *currentDate = [NSDate date];
    NSDateFormatter *rfc3339DateFormatter = [[NSDateFormatter alloc] init];
    [rfc3339DateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS +HHMM"];
    file.modifiedDate = [GTLDateTime dateTimeWithRFC3339String:[rfc3339DateFormatter stringFromDate:currentDate]];
    GTLQueryDrive *getQuery =
    [GTLQueryDrive queryForFilesPatchWithObject:file fileId:file.identifier];
    getQuery.setModifiedDate = YES;
    [self.driveService executeQuery:getQuery completionHandler:^(GTLServiceTicket *ticket, GTLDriveFile* object, NSError *error) {
        if (error != nil) {
            NSLog(@"An error occurred: %@", error);
        }
        else
        {
            NSLog(@"New file mod date:%@",object.modifiedDate);
        }
    }];

}

请帮我找出正确的日期格式。如果答案在Objective-C中,将不胜感激。
EDIT
另一个问题是,无论我们设置哪种格式日期,Drive SDK都应该在API调用期间将其转换为所需的格式。似乎没有发生这样的事情。这是Google Drive Objective-c SDK的缺陷吗?
感谢。

1 个答案:

答案 0 :(得分:0)

线索就在问题中......

"malformed at "1T15:09:57Z")"

您正尝试将日期设置为2013年9月26日