Java 使用SVNKit从SVN中提取的日期不正确

Java 使用SVNKit从SVN中提取的日期不正确,java,svn,svnkit,Java,Svn,Svnkit,我正在使用SVNKit从SVN服务器检索日志。我使用的是SVNKit版本1.3.2 除了我最近看到的一些奇怪的问题外,一切都很好。提交日期检索正在转换为运行程序的系统的时区,因此引入了一个偏移量,从而更改了日志(使用乌龟svn)和程序输出中的时间 logEntries = (Collection)repository.log(new String[] {""}, null, startRevision, endRevision, true, true); for (SVNLogEntry en

我正在使用SVNKit从SVN服务器检索日志。我使用的是SVNKit版本1.3.2

除了我最近看到的一些奇怪的问题外,一切都很好。提交日期检索正在转换为运行程序的系统的时区,因此引入了一个偏移量,从而更改了日志(使用乌龟svn)和程序输出中的时间


logEntries = (Collection)repository.log(new String[] {""}, null, startRevision, endRevision, true, true);
for (SVNLogEntry entry : logEntries) {
    Date date = entry.getDate();
    ...
    ...
}

我想要的是日期输出应该与SVN日志中看到的内容相同。

您实际上没有显示如何“输出”日期,这可能是此处的相关代码。我猜您使用的是
toString()

java.util.Date
对象将时间存储为1970年1月1日之后的偏移量(以毫秒为单位)。00:00:00GMT。更友好的格式

要打印UTC时间,请尝试以下操作:

TimeZone utc = TimeZone.getTimeZone("GMT:00");
DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.LONG);
dateFormat.setTimeZone(utc);
System.out.println(dateFormat.format(date));
我想要的是,日期输出应该与SVN日志中显示的内容相同”

AFAIK您在SVN客户端中“看到”的内容也会转换为本地时区,而SVN内部将提交时间存储在UTC时区中。这是正确的做法;所有软件都应该以这种方式处理时间数据。如果您显示了其他内容,您应该通过清楚显示时区信息来通知用户