EN · DE · RU · FR · ES

#766: DateConverter.java

projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java Класс Java, projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/DateConverter.java 121 строка · 76 строк кода · 31 комментарий · 14 пустых строк
Назначение: Исходный файл: framework/xmlstream/converter/DateConverter.java. DateConverter.java является частью приложения для управления проектами с открытым исходным кодом ProjectForge.

Исходный код (первые 100 строк)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge распространяется по двойной лицензии.
//
// Данная редакция для сообщества является бесплатным программным обеспечением;
// вы можете распространять её и/или модифицировать в соответствии с условиями
// Стандартной общественной лицензии GNU (GNU General Public License) версии 3,
// опубликованной Фондом свободного программного обеспечения (Free Software Foundation).
//
// Эта редакция для сообщества распространяется в надежде, что она будет полезной,
// но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий
// КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. Подробнее см.
// Стандартную общественную лицензию GNU.
//
// Вы должны были получить копию Стандартной общественной лицензии GNU вместе
// с этой программой; если нет, см. 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()
  {
  }

  /**
   * Использует указанный часовой пояс вместо часового пояса текущего пользователя (или, если он не задан,
   * часового пояса системы по умолчанию).
   * @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("Не удалось разобрать строку даты '" + str + "'.");
        return null;
      }
    }

История Git

868d6abb7 2025 -> 2026
2b601ac08 Исправлен устаревший код.
63081666f Заголовки исходных файлов: 2024 -> 2025.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (переименовано для избежания недопонимания в коде).
b6092df09 Авторские права 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

Исправлен устаревший код.
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("Не удалось преобразовать значение '" + str + "' в время в миллисекундах (длинное целое).");

63081666f

Заголовки исходных файлов: 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 (переименовано для избежания недопонимания в коде).
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>
 
   /**
    * Часовой пояс этого объекта (если задан) или часовой пояс пользователя, если он найден в ThreadLocalUserContext,
    * в противном случае {@link TimeZone#getDefault()}.
-   * @see ThreadLocalUserContext#getUser()
+   * @see ThreadLocalUserContext#getLoggedInUser()
    * @see ThreadLocalUserContext#getTimeZone()
    */
   protected TimeZone getTimeZone() {

b6092df09

Авторские права 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.
 //