C# 如何处理snapchat的夏令时时区偏移转换

C# 如何处理snapchat的夏令时时区偏移转换,c#,snapchat,C#,Snapchat,我试图通过Postman调用Snapchat营销API以获取广告统计数据 https://adsapi.snapchat.com/v1/ads/<someId>/stats?granularity=DAY&start_time=2019-10-28T08:00:00Z&end_time=2019-11-26T08:00:00Z https://adsapi.snapchat.com/v1/ads//stats?granularity=DAY&start_time=

我试图通过Postman调用Snapchat营销API以获取广告统计数据

 https://adsapi.snapchat.com/v1/ads/<someId>/stats?granularity=DAY&start_time=2019-10-28T08:00:00Z&end_time=2019-11-26T08:00:00Z
https://adsapi.snapchat.com/v1/ads//stats?granularity=DAY&start_time=2019-10-28:08:00:00Z和结束时间=2019-11-26T08:00:00Z
这就是抛出错误

“不支持的统计数据查询:具有日粒度的Timeseries查询 必须有一个开始时间,即 帐户的时区。此帐户的时区为:美国/洛杉矶“

但当我在浏览器的“网络”选项卡上进行检查时,它以具有不同时区偏移的开始时间和结束时间为准

开始日期=2019-10-28T08:00:00Z(2019-10-28T00:00:00-08:00)

结束日期=2019-11-26T07:00:00Z(2019-11-26T00:00:00-07:00)


通过邮递员的电话,它工作得很好。这是因为夏时制吗?。如果是,我们如何使用日期-时间和时区(区域)或时间偏移来处理此问题?

文档告诉您需要在API调用中发送开始时间的时间部分00:00:00,那么为什么不这样做呢

通过调用DateTime对象上的
date
属性,可以仅获取该对象的日期部分

示例代码:

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));
dt = dt.Date;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));
输出:

2019-11-26T07:23:48Z
2019-11-26T00:00:00Z
开始时间是帐户时区的一天开始(00:00:00)“显示”的时区并不重要。显示是一个字符串,而不是日期的存储方式。日期使用UTF time(日期时间对象)存储在内存中。然后根据计算机的区域设置进行输入和显示,区域设置根据机器的时区设置调整时间。我使用DateTimeOffset对象存储调用API的日期和时间,一切正常。我的问题是,为什么API采用两种不同的时区偏移。