EN · DE · RU · FR · ES

#766: DateConverter.java

projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java Clase Java, projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java 121 líneas · 76 código · 31 comentarios · 14 en blanco
Propósito: Archivo fuente: framework/xmlstream/converter/DateConverter.java. DateConverter.java es parte de la aplicación de gestión de proyectos de código abierto ProjectForge.

Fuente (primeras 100 líneas)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
// Esta edición comunitaria es software libre; puedes redistribuirla y/o
// modificarla bajo los términos de la Licencia Pública General GNU publicada
// por la Free Software Foundation; versión 3 de la Licencia.
//
// Esta edición comunitaria se distribuye con la esperanza de que sea útil,
// pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
// COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
// Licencia Pública General GNU para más detalles.
//
// Deberías haber recibido una copia de la Licencia Pública General GNU junto
// con este programa; si no, visita 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()
  {
  }

  /**
   * Usa la zona horaria dada en lugar de la zona horaria del usuario conectado (o, si no se proporciona, la zona horaria predeterminada del sistema).
   * @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("No se puede analizar la cadena de fecha '" + str + "'.");
        return null;
      }
    }

Historial Git

868d6abb7 2025 -> 2026
2b601ac08 Código obsoleto corregido.
63081666f Encabezados de archivos fuente: 2024 -> 2025.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renombrado para evitar malentendidos en el código).
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 is dual-licensed.
 //

2b601ac08

Código obsoleto corregido.
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("Can't convert value '" + str + "' to time in millis (long value).");

63081666f

Encabezados de archivos fuente: 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 is dual-licensed.
 //

67805f2fc

ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renombrado para evitar malentendidos en el código).
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>
 
   /**
    * The time zone of this object (if given) or the time zone of the user if found in the ThreadLocalUserContext, otherwise {@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 is dual-licensed.
 //