如何将字符串更改为日期格式

时间:2018-09-22 07:43:48

标签: java datetime simpledateformat

我有这个字符串:2018-09-22 10:17:24.772000 我想将其转换为日期:

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

但它显示:2018年9月22日星期六10:17:24 GMT + 03:30

3 个答案:

答案 0 :(得分:2)

这是您应该做的,您正在打印日期对象本身,应该打印其格式。

我将为代码提供旧的日期api和新的本地日期api:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

    System.out.println(dateFrom); // this is what you do
    System.out.println(simpleDateFormat.format(dateFrom)); // this is what you should do

    // below is from new java.time package

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
    System.out.println(LocalDateTime.parse(sdate, formatter).format(formatter));

输出为:

Sat Sep 22 10:30:16 EET 2018
2018-09-22 10:30:16.000000

2018-09-22 10:17:24.772000

答案 1 :(得分:0)

在我看来,就像您已将其转换为日期一样。您想要的结果是什么?我怀疑您要执行的操作是创建另一个显示您期望格式的简单日期格式,然后使用simpledateformat2.format(dateFrom)

我还应根据以往的经验指出,您应该将语言环境添加到简单的日期格式中,否则具有不同语言设置的设备可能无法执行此代码

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS", Locale.US);

答案 2 :(得分:0)

希望这对您有帮助

public class Utils {

    public static void main(String[] args) {

        String mytime="2018-09-22 10:17:24.772000";
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss.SSSSSS");

        Date myDate = null;
        try {
            myDate = dateFormat.parse(mytime);

        } catch (ParseException e) {
            e.printStackTrace();
        }

        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        String finalDate = timeFormat.format(myDate);

        System.out.println(finalDate);
    }
}