【问题标题】:Incorrect date extracted from SVN using SVNKit使用 SVNKit 从 SVN 中提取的日期不正确
【发布时间】:2011-01-04 00:24:08
【问题描述】:

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

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


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

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

【问题讨论】:

    标签: java svn svnkit


    【解决方案1】:

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

    java.util.Date 对象将时间存储为 1970 年 1 月 1 日之后的偏移量,以毫秒为单位。00:00:00 GMTtoString will convert that to the local timezone 和更友好的格式。

    要打印 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 时区中。这是正确的做法;所有软件都应该以这种方式处理时间数据。如果您显示其他任何内容,您应该通过清楚地显示时区信息来告知用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2013-04-17
      • 2014-06-28
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多