EN · DE · RU · FR · ES

#766 : DateConverter.java

projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java Classe Java, projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java 121 lignes · 76 code · 31 commentaires · 14 vides
Objectif : Fichier source : framework/xmlstream/converter/DateConverter.java. DateConverter.java fait partie de l'application open-source de gestion de projet ProjectForge.

Source (100 premières lignes)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge est sous double licence.
//
// Cette édition communautaire est un logiciel libre ; vous pouvez la redistribuer et/ou
// la modifier selon les termes de la GNU General Public License telle que publiée
// par la Free Software Foundation ; version 3 de la Licence.
//
// Cette édition communautaire est distribuée dans l'espoir qu'elle sera utile,
// mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
// QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la GNU General
// Public License pour plus de détails.
//
// Vous devriez avoir reçu une copie de la GNU General Public License avec
// ce programme ; sinon, consultez http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.framework.xmlstream.converter;

import org.apache.commons.lang3.StringUtils;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import org.projectforge.framework.xmlstream.XmlConstants;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class DateConverter extends AbstractValueConverter<Date>
{
  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DateConverter.class);

  protected static final String FORMAT_ISO_DATE = "yyyy-MM-dd";

  protected static final String FORMAT_ISO_TIMESTAMP_MINUTES = "yyyy-MM-dd HH:mm";

  protected static final String FORMAT_ISO_TIMESTAMP_SECONDS = "yyyy-MM-dd HH:mm:ss";

  protected static final String FORMAT_ISO_TIMESTAMP_MILLIS = "yyyy-MM-dd HH:mm:ss.S";

  private TimeZone timeZone;

  public DateConverter()
  {
  }

  /**
   * Utilise le fuseau horaire donné au lieu du fuseau horaire de l'utilisateur connecté (ou, s'il n'est pas donné, le fuseau horaire par défaut du système).
   * @param timeZone
   */
  public DateConverter(final TimeZone timeZone)
  {
    this.timeZone = timeZone;
  }

  @Override
  public String toString(Object obj)
  {
    if (obj == null) {
      return null;
    }
    return String.valueOf(((Date) obj).getTime());
  }

  @Override
  public Date fromString(String str)
  {
    if (StringUtils.isEmpty(str) || XmlConstants.NULL_IDENTIFIER.equals(str)) {
      return null;
    }
    String format = null;
    if (str.indexOf('-') > 0) {
      final int length = str.length();
      if (length == FORMAT_ISO_DATE.length()) {
        format = FORMAT_ISO_DATE;
      } else if (length == FORMAT_ISO_TIMESTAMP_MINUTES.length()) {
        format = FORMAT_ISO_TIMESTAMP_MINUTES;
      } else if (length == FORMAT_ISO_TIMESTAMP_SECONDS.length()) {
        format = FORMAT_ISO_TIMESTAMP_SECONDS;
      } else if (length == FORMAT_ISO_TIMESTAMP_MILLIS.length()) {
        format = FORMAT_ISO_TIMESTAMP_MILLIS;
      }
    }
    if (format != null) {
      final DateFormat dateFormat = new SimpleDateFormat(format);
      dateFormat.setTimeZone(getTimeZone());
      try {
        return dateFormat.parse(str);
      } catch (ParseException ex) {
        log.warn("Impossible d'analyser la chaîne de date '" + str + "'.");
        return null;
      }
    }

Historique Git

868d6abb7 2025 -> 2026
2b601ac08 Code obsolète corrigé.
63081666f En-têtes des fichiers source : 2024 -> 2025.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renommé pour éviter les malentendus dans le code).
b6092df09 Copyright 2023 -> 2024

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
index e9fa9f1fe..e42287d44 100644
--- a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge est sous double licence.
 //

2b601ac08

Code obsolète corrigé.
2b601ac08b7728d78801afd3f4ec52d6c9a0938f
diff --git a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
index aa59bdf93..e9fa9f1fe 100644
--- a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
@@ -99,7 +99,7 @@ public class DateConverter extends AbstractValueConverter<Date>
       }
     }
     try {
-      final long timeInMillis = new Long(str);
+      final long timeInMillis = Long.valueOf(str);
       return new Date(timeInMillis);
     } catch (final NumberFormatException ex) {
       log.warn("Impossible de convertir la valeur '" + str + "' en temps en millisecondes (valeur longue).");

63081666f

En-têtes des fichiers source : 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
index 1e59e7024..aa59bdf93 100644
--- a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge est sous double licence.
 //

67805f2fc

ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renommé pour éviter les malentendus dans le code).
67805f2fc1f3e6a6393accb4a757a8f4049b001c
diff --git a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
index 6fb63c2a5..1e59e7024 100644
--- a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
@@ -109,7 +109,7 @@ public class DateConverter extends AbstractValueConverter<Date>
 
   /**
    * Le fuseau horaire de cet objet (s'il est donné) ou le fuseau horaire de l'utilisateur s'il est trouvé dans le ThreadLocalUserContext, sinon {@link TimeZone#getDefault()}.
-   * @see ThreadLocalUserContext#getUser()
+   * @see ThreadLocalUserContext#getLoggedInUser()
    * @see ThreadLocalUserContext#getTimeZone()
    */
   protected TimeZone getTimeZone() {

b6092df09

Copyright 2023 -> 2024
b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
index a0ff0e244..6fb63c2a5 100644
--- a/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge est sous double licence.
 //