【问题标题】:Convert String Date in yyyy-MM-dd into Java UtilDatein format yyyy-MM-dd [duplicate]将yyyy-MM-dd中的String Date转换为Java Util Date格式yyyy-MM-dd [重复]
【发布时间】:2018-11-14 17:05:54
【问题描述】:

我想以 yyyy-MM-dd 格式将日期值作为字符串,并以相同格式返回 jabva util 日期。 为此,我使用以下代码,但结果为“Wed Sep 18 00:00:00 CEST 2013”​​

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String  strdate = "2013-09-18";
    Date utilDate = sdf.parse(strdate);
    System.out.println(utilDate);

我还需要考虑语言环境吗? 请帮助实现这一目标。 提前致谢

【问题讨论】:

  • sdf.parse(strdate) 的结果只是一个字符串;将其分配给 utilDate 会将字符串解析为新的 Date 对象。任何时候都不会传输格式信息。
  • 只需做System.out.println(sdf.format(utilDate));
  • 您可能需要考虑从 Java 8 切换到 LocalDate 和 DateFormatter 类。这是要走的路。 SimpleDateFormat 已过时
  • 我建议你避免使用SimpleDateFormat 类。它不仅过时了,而且出了名的麻烦。今天我们在java.time, the modern Java date and time API 中做得更好。
  • @GauravRai1512 默认情况下,LocalDate 类中使用该标准 ISO 8601 格式。无需定义格式化模式,无需使用DateTimeFormatter。只需使用:LocalDate.parse( "2018-01-23" )

标签: java simpledateformat


【解决方案1】:

请尝试以下代码。 您还必须格式化您的 simpleDateFormat 对象并在其中传递 utilDate 对象以创建您指定的格式化日期。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {

     public static void main(String[] args) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String  strdate = "2013-09-18";
            Date utilDate = sdf.parse(strdate);
            String date=sdf.format(utilDate );
            System.out.println(date);
 }
}

我们也可以像下面这样通过Java8实现:

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateTest {

     public static void main(String[] args) throws ParseException{
         String  strdate = "2013-09-18";
            DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
            LocalDate date = LocalDate.parse(strdate, formatter);
            System.out.println(date.format(formatter));
}

}

或者您也可以只使用 LocalDate 在 java util 中进行更改,如下所示。

import java.time.LocalDate;

public class TestCircle {

    public static void main(String args[]){
        String  strdate = "2013-09-18";
        LocalDate date = LocalDate.parse(strdate);
        System.out.println(date);
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多