小编Chi*_*Bud的帖子

在GMT时区中保存和检索日期并转换为字符串

我有要求

  • 在GMT时区中保存并检索日期(日期应转换为String).因此,如果用户保存日期10/10/2017 23:05,那将保存为10/11/2017 4:05(如果在CST时间保存,例如,提前5小时)在DB中.
  • 在检索和向UI呈现日期时,对于CST用户,它应显示为 10/10/2017 23:05.
  • 此外,需要验证函数以了解日期是否需要以美国/非美国日期格式显示(dd/MM/YYYY与mm/DD/YYYY).

为了达到这个目的,我编写了以下代码片段,但是没有产生所需的结果.它存储的价值为10/11/2017 4:05,然而,当呈现给美国,即获得价值/刷新页面时,它又 增加了5个小时.删除了异常和其他不必要的代码,使其变得简单:

public class DatetoString implements Serializable
{
    private final DateFormat dateFormatter = createDateFormatter();

    // Sets Date to model
    public void setTypedValue(final Object val)
    {
        final String dateValue;
        String dateTimeFormat = BooleanUtils.isFalse(getUSDateFormatConfig()) ? "dd/MM/yyyy HH:mm" : "MM/dd/yyyy HH:mm";
        DateFormat df = new SimpleDateFormat(dateTimeFormat);
        df.setTimeZone(TimeZone.getTimeZone("GMT"));

        Date singleDate = (Date) df.parse(val.toString());
        dateValue = dateFormatter.format(singleDate);
        model.setValue(dateValue.toString());
        // Other code..
    }

    // Retrieves date from model
    public Object …
Run Code Online (Sandbox Code Playgroud)

java datetime date datetimeoffset

0
推荐指数
1
解决办法
595
查看次数

标签 统计

date ×1

datetime ×1

datetimeoffset ×1

java ×1