EN · DE · RU · FR · ES

#766: DateConverter.java

projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java Java-Klasse, projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java 121 Zeilen · 76 Code · 31 Kommentare · 14 leer
Zweck: Quelldatei: framework/xmlstream/converter/DateConverter.java. DateConverter.java ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quelltext (erste 100 Zeilen)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge ist dual-lizenziert.
//
// Diese Community-Edition ist freie Software; Sie können es weiterverteilen und/oder
// modifizieren unter den Bedingungen der GNU General Public License, wie veröffentlicht
// von der Free Software Foundation; Version 3 der Lizenz.
//
// Diese Community-Edition wird in der Hoffnung verteilt, dass sie nützlich sein wird,
// aber OHNE JEDE GEWÄHRLEISTUNG; ohne sogar die stillschweigende Garantie der
// MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General
// Public License für weitere Details.
//
// Sie sollten eine Kopie der GNU General Public License zusammen mit
// diesem Programm erhalten haben; falls nicht, siehe 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()
  {
  }

  /**
   * Verwendet die angegebene Zeitzone anstelle der Zeitzone des angemeldeten Benutzers (oder, falls nicht angegeben, der Standardzeitzone des Systems).
   * @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("Datumszeichenkette '" + str + "' kann nicht geparst werden.");
        return null;
      }
    }

Git-Verlauf

868d6abb7 2025 -> 2026
2b601ac08 Veralteter Code behoben.
63081666f Quelltextdatei-Header: 2024 -> 2025.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (umbenannt, um Missverständnisse im Code zu vermeiden).
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 ist dual-lizenziert.
 //

2b601ac08

Veralteter Code behoben.
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("Wert '" + str + "' kann nicht in Millisekunden (long-Wert) umgewandelt werden.");

63081666f

Quelltextdatei-Header: 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 ist dual-lizenziert.
 //

67805f2fc

ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (umbenannt, um Missverständnisse im Code zu vermeiden).
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>
 
   /**
    * Die Zeitzone dieses Objekts (falls angegeben) oder die Zeitzone des Benutzers, falls im ThreadLocalUserContext gefunden, andernfalls {@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 ist dual-lizenziert.
 //