我正在尝试从Java中日期的String表示创建一个Date
或Calendar
对象。我尝试使用 SimpleDateFormat.parse
,但产生的结果与我输入的结果完全不同。有人可以解释我在这里做错了吗?
import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.*;
class IdeOne
{
public static void main (String[] args) throws java.lang.Exception
{
SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date dt = sdf.parse("20141208");
System.out.println(dt.getDay() + " " + dt.getMonth() + " " + dt.getYear());
System.out.println(sdf.format(dt));
}
}
我正在获得输出
0 11 113
20141229
答案 0 :(得分:1)
年份必须使用较低的y:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
因为上Y是周年。有关更多信息,请阅读SimpleDateFormat的documentation
答案 1 :(得分:0)
尝试使用此:
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date dt = sdf.parse("20141208");
Calendar c=Calendar.getInstance();
c.setTime(dt);
System.out.println(c.get(Calendar.DAY_OF_MONTH) + " " + c.get(Calendar.MONTH)+ " " + c.get(Calendar.YEAR));
System.out.println(sdf.format(dt));
}
}