C# 使用API自动发布事件、日期和时间不正确

C# 使用API自动发布事件、日期和时间不正确,c#,api,json.net,invision-power-board,C#,Api,Json.net,Invision Power Board,我正在使用c为Invision Board论坛使用API。其思想是,应用程序将用于同时发布多个事件,而不是一次只发布一个事件 我正在使用json.net构建我的请求,我发布的用户的时区设置为UTC,我还将事件的日期+时间转换为UTC。我已经查看了请求参数,此时的转换是正确的 发布事件时,时间不正确。例如,本应在6月6日下午6点发布的事件将在6月7日凌晨3点发布 我的问题是:我不确定时间在哪一点转换。我应该提到的是,日历有一个自动转换器,它可以显示本地时间的事件,但是正如我前面提到的,我发布的用户

我正在使用c为Invision Board论坛使用API。其思想是,应用程序将用于同时发布多个事件,而不是一次只发布一个事件

我正在使用json.net构建我的请求,我发布的用户的时区设置为UTC,我还将事件的日期+时间转换为UTC。我已经查看了请求参数,此时的转换是正确的

发布事件时,时间不正确。例如,本应在6月6日下午6点发布的事件将在6月7日凌晨3点发布

我的问题是:我不确定时间在哪一点转换。我应该提到的是,日历有一个自动转换器,它可以显示本地时间的事件,但是正如我前面提到的,我发布的用户的时区设置为UTC。我也尝试将本地时间设置为UTC,但我不知道是否应该知道服务器的时区,这将非常困难,因为我们正在使用托管服务或缺少什么,所以发布的时间是正确的

下面是我处理日期的一个片段:

date = Convert.ToDateTime(date1) + time;           
DateTime dateConverted = date.ToUniversalTime();  
string d1=dateConverted.ToString("o", CultureInfo.InvariantCulture);
dt.Rows.Add(d1, events[b]); 
以及到InvisionBoard api文档的链接:

感谢阅读:

编辑: 我现在按照如下方式创建日期:

DateTime dateF = new DateTime(2020, date.Month, date.Day, time.Hours, time.Minutes,0); 
这给了我一个不同的时间谢谢jakdep,我和很多人讨论了这个问题,没有人发现“你为什么要增加时间”的问题。 不过,如果我发布,比如说上午11点,我会将其转换为UTC,但它会在日历上显示上午11点,这是另一个时区的原始时间,而不是我必须在时区中看到的下午2点://

编辑: 耶,终于成功了。 我所做的是将事件时间和我的本地时间之间的时间转换,然后再转换为UTC:

DateTime cdateF = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateF,sourceTimeZone, tzone);
DateTime dateConverted = cdateF.ToUniversalTime();
它从我所在的时区开始转换,这就是为什么即使使用UTC转换,时间仍然是错误的。 它现在发布了正确的时间:D
感谢您的帮助:D

欢迎来到StackOverlow。API文档声明它返回开始和结束日期时间值。你为什么要给约会增加时间?API返回的原始值是否包含时区信息?我们有多个事件发生在同一天但时间不同。这是活动的日期+时间。它不包括时区信息,当通过日历页面发布事件时,您可以输入时间,并选择您正在使用的时间的时区,以便将其转换为每个人的正确时间,如果您没有,那么它将使用发布事件的用户的时区。在这种情况下,它应该是UTC,因为它是我用来发布事件的用户的时区
DateTime cdateF = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateF,sourceTimeZone, tzone);
DateTime dateConverted = cdateF.ToUniversalTime();