繁体   English   中英

JAVA修改日期的字符串格式

[英]JAVA modify date of String format

//大家好,

所以,我有方法

public void init() {
        list = taskManager.getList();
        list.sort((object1, object2) -> ((String) object2.getProperties().get("bpm_startDate"))
        .compareTo((String) object1.getProperties().get("bpm_startDate")));
 }

此方法按日期对列表进行排序,列表从REST服务填充,因此日期采用字符串格式。

<p:column headerText="#{msg.date}" >
    <h:outputText value="#{task.properties.bpm_startDate.substring(0,16).replace('T','  ')}">
    </h:outputText>
</p:column>

这就是我在显示给用户之前“切除”日期中所有多余部分的方式。

问题是,如何增加3小时?

您可以像这样使用SimpleDateFormat将String date转换为Date

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(dateInString);

要添加小时(时间),请检查Calendar类。 它具有add方法(和其他一些方法)以允许时间操纵。 这样的事情应该起作用。

Calendar cal = Calendar.getInstance(); // creates calendar
cal.setTime(date); // sets calendar time/date
cal.add(Calendar.HOUR_OF_DAY, 1); // adds one hour
cal.getTime(); // returns new date object, one hour in the future

我强烈建议您检查一下Joda-Time库。 http://www.joda.org/joda-time/

由于我不知道您原始日期的存储格式,因此无法提供所需的确切代码,但是您需要查看以下内容:

您可以使用java.util.Calendar和DateFormat

//Parse String for Date
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); 
Date myDate = format.parse(stringDate);

//Use Calendar to add 3 hours
Calendar c = Calendar.getInstance();
c.setTime(myDate);
c.add(Calendar.HOUR_OF_DAY, 3);

//Retransform date to String
String newDate= format.format(c.getTime());

请记住,按照官方文档将“ yyyy / MM / dd”替换为您的实际格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM