⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relativedateconverter.java

📁 adf-faces 甲骨文的jsf组件,功能很强.开源免费.
💻 JAVA
字号:
package oracle.adfdemo.view.faces.email;

import java.text.DateFormat;
import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import javax.faces.component.UIComponent;
import javax.faces.convert.Converter;
import javax.faces.context.FacesContext;

import oracle.adf.view.faces.context.AdfFacesContext;

public class RelativeDateConverter implements Converter
{
  public RelativeDateConverter()
  {
  }

  public String getAsString(FacesContext context, UIComponent component,
                            Object value)
  {
    if (value == null)
      return null;

    if (!(value instanceof Date))
      return value.toString();

    Date date = (Date) value;

    AdfFacesContext afContext = AdfFacesContext.getCurrentInstance();
    TimeZone tz = afContext.getTimeZone();
    if (tz == null)
      tz = TimeZone.getDefault();

    Locale locale = context.getViewRoot().getLocale();
    if (_isToday(date, tz, locale))
    {
      DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT,
                                                     locale);
      String dateString = format.format(date);
      String todayMask = MessageUtils.getString(context, "TODAY_MASK");
      return MessageFormat.format(todayMask, new Object[]{dateString});
    }
    else
    {
      DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT,
                                                         DateFormat.SHORT,
                                                         locale);
      return format.format(date);
    }
  }

  public Object getAsObject(FacesContext context, UIComponent component,
                            String value)
  {
    throw new UnsupportedOperationException();
  }

  static private boolean _isToday(Date date, TimeZone tz, Locale locale)
  {
    Calendar calendar = Calendar.getInstance(tz, locale);
    calendar.setTime(date);

    int year = calendar.get(Calendar.YEAR);
    int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);

    calendar.setTime(new Date());
    if ((year == calendar.get(Calendar.YEAR)) &&
        (dayOfYear == calendar.get(Calendar.DAY_OF_YEAR)))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -