【发布时间】:2015-02-22 09:53:58
【问题描述】:
我使用下面的代码sn-p
lxDate= #1/1/1970#
GetUnixDate = CType(DateDiff("S", lxDate, pDate), Int32)
其中 pDate 是用户输入的日期及其格式
mm/dd/yyyy 例如#12/24/2014#
这会正确检索 unix 日期。但是在一台特定机器上,输出比所需日期少一秒。
那是转换结果在前一个日期时的 unix 时间戳。
例如,2004 年 12 月 18 日星期六 23:59:59 GMT 当所需结果为
2004 年 12 月 19 日星期日 00:00:00 GMT
【问题讨论】:
-
我个人建议从另一个中减去一个
DateTime,并使用生成的TimeSpan的TotalSeconds属性。DateDiff之类的东西更多是为了向后兼容 VB6,而不是作为 .NET 中的现代处理方式。也就是说,你的问题有点不清楚——结果不是DateTime,它是一个整数......那么你怎么能说结果是一个特定的DateTime?如果您能展示一个简短但完整的程序来演示问题(在那台机器上),那将会很有帮助。 -
你是对的,输出是一个整数,它给出了 unixtimestamp。对于特定情况,检索到的 unix 时间戳为 1418860799,这可以转换为日期。您可以使用以下链接 onlineconversion.com/unix_time.htm 它导致 17-dec-2014 23:59:59 但是所需的时间戳是 1418860800 它导致 18- dec-2014 00:00:00 因此观察到 1 秒的延迟
-
对。这更有意义,您应该在问题中包含该信息,以及显示它的简短但完整的程序。
标签: .net