2016-02-22 5 views
1

Я работал над CVS Log reader, чтобы сделать некоторые проверки по форматированию. После миграции CVS, я получаю ниже ошибки:Конфигурация формата даты в формате CVS

java.text.ParseException: Unparseable date: "2011/05/30 08:27:24" 

После расследования, я бы этот формат даты в файле журнала CVS был изменен с YYYY-MM-DD в/дд YYYY/MM. Из-за чего проверка не выполнена.

Ранее формат журнал 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 руководства, но нет никакого способа форматирования формата даты в журналах ,

Переносная машина имеет те же настройки, что и на старом компьютере.

ответ

1

После изучения некоторых более, у меня есть что проблема связана с версией CVS. Миграционная машина имела версию как 1.11.x Но, раньше машина имела версию cvs как 1.12.x. После обновления версии проблема решена.

По мере того как последняя версия поддерживает date as in ISO8601 format. Есть свойство DateFormat=iso8601 в CVSROOT \ config

0

Если вы разрабатываете ваш читатель, вы должны использовать парсер, как это:

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

Да, это может быть сделано в программе java для изменения формата или добавления резервной копии. Мой вопрос в том, есть ли какая-либо конфигурация, которая может быть изменена на уровне сервера CVS (файл конфигурации), который определяет формат файла журнала в команде «CVS log» –

0

попробовать использовать этот метод в вашем коде:

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; 
    } 
+0

Да, это может быть сделано в программе java для изменения формата или добавление резервной копии. Мой вопрос в том, есть ли какая-либо конфигурация, которая может быть изменена на уровне сервера CVS (файл конфигурации), который определяет формат файла журнала в команде «CVS log» –

+0

Какое CVS вы используете? – aleksei

+0

Я думаю, это версия winCVS 1.11 –

Смежные вопросы