0

我需要将本地文件修改日期设置为 Google Drive 中的文件。首先,我尝试使用无效的 drive.file.insert API 进行设置。在 SO 中讨论了可以使用 drive.file.patch API 完成文件修改。下面是我用来更新文件修改日期的代码。但是当我尝试这个时,我得到了错误。

发生错误:Error 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 中,将不胜感激。
编辑
另一个问题是,无论我们设置哪种格式日期,Drive SDK 都应在 API 调用期间处理将其转换为所需格式。似乎它并没有发生。它是 Google Drive Objective-c SDK 的缺陷吗?
谢谢。

4

1 回答 1

0

线索就在问题中...

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

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

于 2013-09-18T10:29:16.490 回答