用Java格式化日期

时间:2013-12-16 05:00:54

标签: java date datetime string-formatting

我将TimeStamp作为String输入。我必须将它转换为另一种格式的字符串。

例如:

input string : 2013-12-23 20:59:15.0

output string: 2013/12/23

所以我写了一个小的Java程序来做到这一点:

public class test {
    public static void main(String[] args) throws ParseException
    {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss.SS");
        String x ="2013-12-23 20:59:15.0";

        Date parsedDate = dateFormat.parse(x);

        Format formatter = new SimpleDateFormat("yyyy/MM/dd");

        String y = formatter.format(parsedDate);

        System.out.println(y);
    }
}

现在无论输入是什么,月份值总是回归1

例如:

input string : 2013-12-23 20:59:15.0

output string: 2013/01/23

另一个例子:

input string : 2012-05-23 20:59:15.0

output string: 2012/01/23

我在这里遗漏了什么吗?

3 个答案:

答案 0 :(得分:1)

yyyy-mm-dd应为yyyy-MM-dd

基本上,您将月份元素转换为分钟。

  

m分钟30分钟   M月份七月份; 7月; 07

请查看SimpleDateFormat了解详情

答案 1 :(得分:1)

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SS");

答案 2 :(得分:0)

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

public class Dateformat

{
    public static void main(String [] args) throws ParseException
    {
        String oldstring = "2013-11-15 00:00:00.0";

        java.util.Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);

        String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);

        System.out.println(newstring);

    }

}

<强>输出

2013年11月15日