C# Unix时代的古怪,还是别的什么?

C# Unix时代的古怪,还是别的什么?,c#,unix-timestamp,C#,Unix Timestamp,我正在用C语言编写一个应用程序,它调用第三方web服务上的方法(但这个问题与语言无关)。我必须调用的其中一个方法设置了“开始时间”。该方法希望以Unix时间格式(从1970年1月1日午夜起的秒数)以长时间传递日期和时间 我从他们的开发团队收到的代码示例使用JavagetTime()函数,据我所知,它确实返回了一个表示Unix时间的long。因此,例如,如果我想在下午5点将开始时间设置为2/28/11,我会传递它1298912400。然而,这不起作用。他们的服务没有返回错误,但是如果我查看web

我正在用C语言编写一个应用程序,它调用第三方web服务上的方法(但这个问题与语言无关)。我必须调用的其中一个方法设置了“开始时间”。该方法希望以Unix时间格式(从1970年1月1日午夜起的秒数)以长时间传递日期和时间

我从他们的开发团队收到的代码示例使用Java
getTime()
函数,据我所知,它确实返回了一个表示Unix时间的long。因此,例如,如果我想在下午5点将开始时间设置为
2/28/11
,我会传递它
1298912400
。然而,这不起作用。他们的服务没有返回错误,但是如果我查看web gui进行确认,则开始时间为空

现在,如果我使用他们的web gui在下午5点手动将开始时间设置为
2/28/11
他们的日志显示为
1298930400000
。首先,这个数字太长了3位,第二,即使我去掉了多余的零,这个数字也等于
2/28/11,但在晚上11点

所以我的问题是,他们是在做一些我不知道的事情,还是我遗漏了一些这里有人可以告诉我的事情

更新以添加代码:

TimeSpan ts = (new DateTime(2011, 2, 28, 17, 0, 0, DateTimeKind.Utc) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
long goodtime = (long)ts.TotalMilliseconds;

这为我返回了
1298912400000
,但他们说应该是
1298930400000
,那么我做错了什么呢?

他们用的是毫秒,你可能没有补偿时区。

他们用的是毫秒,您可能没有对时区进行补偿。

也许这是您正在使用的web服务的作者的问题?是的,很不幸,我的电子邮件和电话都没有应答。@EscoBarceser他们的web GUI正在补偿您所在地区的时区和DST设置。因此,您从网站得到的结果与您自己的代码(UTC)得到的结果不同。也许这是您正在使用的web服务的作者的问题?是的,不幸的是,我的电子邮件和电话没有应答。@EscoBarceser他们的web GUI正在补偿您所在地区的时区和DST设置。因此,您从网站获得的结果与您从自己的代码获得的结果不同,即UTC.Hhhmm。。。我会试着回去报到。请继续收看。我认为你对毫秒部分的看法绝对正确,因为当我将时间跨度转换为总毫秒时,这个数字会多出3个零。但我正在使用UTC,我不知道为什么他们不会。你知道我该如何处理这个问题吗?事实上,读过它之后,getTime()实际上应该总是返回自1970年1月1日以来的毫秒(UTC)。为什么他们看起来要增加6个小时是任何人的猜测。你手头上有关于这项服务的API文档吗?嗯。。。我会试着回去报到。请继续收看。我认为你对毫秒部分的看法绝对正确,因为当我将时间跨度转换为总毫秒时,这个数字会多出3个零。但我正在使用UTC,我不知道为什么他们不会。你知道我该如何处理这个问题吗?事实上,读过它之后,getTime()实际上应该总是返回自1970年1月1日以来的毫秒(UTC)。为什么他们会增加6个小时是任何人的猜测。你手头上有任何关于这项服务的API文档吗?