Unix时间奇怪,还是其他什么?

时间:2011-08-19 11:53:43

标签: c# unix-timestamp

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

我从他们的开发团队收到的代码示例使用Java getTime()函数,据我所知,它确实返回一个表示Unix时间的长整数。因此,例如,如果我想将开始时间设置为2/28/11 at 5pm,我会将其传递给1298912400。但是这不起作用。他们的服务不会返回错误,但如果我去看看网络确认,开始时间是空白的。

现在,如果我使用他们的网络gui手动将开始时间设置为2/28/11 at 5pm,他们的日志会将其显示为1298930400000。首先,这个数字是3位数太长,第二,即使我删除额外的零,数字等于2/28/11 but at 11pm

所以我的问题是,他们在内部做了一些我不知道的事情,还是我错过了某人可以向我指出的事情?

更新以添加代码:

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所以我做错了什么?

1 个答案:

答案 0 :(得分:3)

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