Java CVS日志日期格式配置

Java CVS日志日期格式配置,java,date-format,cvs,parseexception,Java,Date Format,Cvs,Parseexception,我正在使用CVS日志读取器对格式进行验证。CVS迁移后,我发现以下错误: java.text.ParseException: Unparseable date: "2011/05/30 08:27:24" 经过调查,我认为CVS日志文件中的日期格式已从YYYY-MM-dd更改为YYYY/MM/dd。因此验证失败 CVS日志的早期格式为 RCS file: /opt/cvsrepositories/demo/Demo/source/demo_search/.classpath,v Working

我正在使用CVS日志读取器对格式进行验证。CVS迁移后,我发现以下错误:

java.text.ParseException: Unparseable date: "2011/05/30 08:27:24"
经过调查,我认为CVS日志文件中的日期格式已从YYYY-MM-dd更改为YYYY/MM/dd。因此验证失败

CVS日志的早期格式为

RCS file: /opt/cvsrepositories/demo/Demo/source/demo_search/.classpath,v
Working file: source/demo_search/.classpath
head: 1.1
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014-07-14 09:50:57 +0000;  author: Dev.User;  state: Exp;  commitid: 62ee53c3a7d54567;
first version of the search module
=============================================================================
现在,它改为:

RCS file: /opt/cvsrepositories/demo/Demo/source/demo_search/.classpath,v
Working file: source/demo_search/.classpath
head: 1.1
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/07/14 09:50:57 +0000;  author: Dev.User;  state: Exp;  commitid: 62ee53c3a7d54567;
first version of the search module
=============================================================================
我已经检查了CVS手册,但是没有办法在日志中设置日期格式


迁移的计算机具有与旧计算机相同的设置

如果您正在开发阅读器,则需要使用如下解析器:

 String strDate = "2011/05/30 08:27:24";
 SimpleDateFormat parserSDF=new SimpleDateFormat("YYYY/mm/dd HH:mm:ss");
 Date date = parserSDF.parse(formattedDate);

尝试在代码中使用此方法:

    private final static SimpleDateFormat OLD_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private final static SimpleDateFormat NEW_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    public static Date parseDate(String date){
           Date parsedDate;
           try {
               log.debug("Try to parse date using old format");
               parsedDate = OLD_FORMAT.parse(date);
               log.debug("Parsed date using old format");
          } catch (ParseException e) {
               log.debug("Failed while parsed date using old format");
               try {
                   log.debug("Try to parse date using new format");
                   parsedDate = NEW_FORMAT.parse(date);
                   log.debug("Parsed date using new format");
               } catch (ParseException e) {
                   throw new IllegalStateException("Format of 'date' parameter must be yyyy-MM-dd HH:mm:ss or yyyy/MM/dd HH:mm:ss");
               }
          }
          return parsedDate;
     }

在进一步调查之后,我发现问题出在CVS版本上。迁移的计算机的版本为
1.11.x
,但早期的计算机的cvs版本为
1.12.x
。更新版本后,问题已经解决

最新版本支持ISO8601格式的日期。
CVSROOT\config中有一个属性
DateFormat=iso8601

是,可以在java程序中更改格式或添加回退。我的问题是,是否有任何可以在CVS服务器级别(配置文件)更改的配置,该配置定义了
CVS log
command中的日志文件格式您使用的是什么CVS?我认为,这是winCVS 1.11版本,可以在java程序中更改格式或添加回退。我的问题是,是否存在可以在CVS服务器级别(配置文件)更改的配置,该配置定义了
CVS log
命令中日志文件的格式