我需要将本地文件修改日期设置为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的缺陷吗?
感谢。
答案 0 :(得分:0)
线索就在问题中......
"malformed at "1T15:09:57Z")"
您正尝试将日期设置为2013年9月26日