YouTube 报告 API .Net 客户端库 CreateTime 毫秒

YouTube Reporting API .Net Client Library CreateTime Milliseconds

当 returning 为特定作业生成的报告列表时,API returns createTime 属性。然后,此 属性 值用于限制将来的请求仅包括在已收集的最大创建时间之后创建的报告。

问题是客户端库不是 return毫秒精度。相反,我得到一个仅包含秒数的字符串,例如“4/3/2017 11:25:25 AM”。

当我使用 API 资源管理器时,我确实在响应 json 中得到毫秒数。

问题是,客户端库可以return毫秒吗?如果是这样,我如何获得这些值?

我所指的报告 属性 称为 "CreateTime"。

var reportList = ytReportingService.Jobs.Reports.List(JobId);
reportList.CreatedAfter = "1900-01-01T12:00:00.000000Z";

foreach (Report report in reportListResponse.Reports)
{
//Some irrelevant code is removed
Console.WriteLine("================== Job Report ==================");
Console.WriteLine("Event: " + Event);
Console.WriteLine("ID: " + report.Id);
Console.WriteLine("DownloadUrl: " + report.DownloadUrl);
Console.WriteLine("CreateTime: " + report.CreateTime.ToString());
Console.WriteLine("StartTime: " + report.StartTime);
Console.WriteLine("EndTime: " + report.EndTime);
Console.WriteLine("JobID: " + report.JobId);
Console.WriteLine("JobExpireTime: " + report.JobExpireTime);
}

更新20170406

CreateTime 作为通用对象从客户端库中 return 编辑。令人惊讶的是,它允许获取和设置。

下面我将转换为日期时间数据,然后返回到字符串并明确格式化。

((DateTime)job.CreateTime).ToString("yyyy-MM-dd HH:mm:ss.fff"))

结果是一样的。 return 没有小数秒。

((DateTime)job.CreateTime).ToString("yyyy-MM-dd HH:mm:ss.fff"))

更新20170406

更正 - 上面的示例使用了作业对象的 CreateTime 属性。虽然作业不会 return 小数秒,但 report.CreateTime 会 return 小数秒!

事实证明,report.CreateTime(对象)在直接转换为字符串时不包括小数秒。解决方案是先将其转换为数据时间数据类型。然后,可以根据需要格式化数据。

((DateTime)report.CreateTime).ToString("yyyy-MM-dd HH:mm:ss.fff")

Jon Skeet post发表了一条评论,给出了答案。见上面最后的例子post.