将Java日期时间字符串更改为date

时间:2018-01-17 10:15:16

标签: java date datetime datetime-format date-formatting

我试图寻找很多问题,但却找不到相关的东西。我有一个包含以下数据的字符串:

String sDate = "2018-01-17 00:00:00";

这来自一个应用程序,我需要将其转换为以下日期格式

  

17-01-2018

我经历了这个link,但无法联想到。

有人可以帮忙..?

3 个答案:

答案 0 :(得分:4)

如果您使用的是Java 8,则可以使用java.time库和:

String sDate = "2018-01-17 00:00:00";

//Step one : convert the String to LocalDateTime
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date = LocalDateTime.parse(sDate, formatter);

//Step two : format the result date to dd-MM-yyyy
String result = date.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));

输出

17-01-2018

另一种过度工程解决方案(仅适用于您的情况)您可以使用默认格式LocalDateTime

String result = LocalDateTime.parse(sDate.replace(" ", "T"))
        .format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));

答案 1 :(得分:2)

public static void main(String args[]) {  
String sDate = "2018-01-17 00:00:00";
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        try {
            date = df.parse(sDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        SimpleDateFormat df1 = new SimpleDateFormat("dd-MM-yyyy");
        System.out.println(df1.format(date));

}


it should solve your problem.

答案 2 :(得分:0)

您需要使用SimpleDateFormat:

nargs='+'

浏览SimpleDateFormat课程以了解此

的详细信息