java中的日期类错误
我有java中的日期类错误,java,date,date-format,simpledateformat,Java,Date,Date Format,Simpledateformat,我有datetoday=新日期()。。但是当我试图在 DateFormat mmFormat=new SimpleDateFormat("MM"); System.out.println(mmFormat.format(today.getMonth())); DateFormat yyFormat=new SimpleDateFormat("yyyy"); System.out.println(yyFormat.format(today.getYear())); 它将月份打印为01,将年份
datetoday=新日期()返回当前日期的代码>。。但是当我试图在
DateFormat mmFormat=new SimpleDateFormat("MM");
System.out.println(mmFormat.format(today.getMonth()));
DateFormat yyFormat=new SimpleDateFormat("yyyy");
System.out.println(yyFormat.format(today.getYear()));
它将月份打印为01,将年份打印为1970
如何解决此问题?将整个日期传递给SimpleDateFormat。格式字符串“MM”或“yyyy”将使其仅提取所需日期的一部分。将整个日期传递给SimpleDataFormat。格式字符串“MM”或“yyyy”将使其仅提取所需日期的一部分。只需使用日期
今天
作为输入参数即可
System.out.println(mmFormat.format(today));
及
只需使用日期
今天
作为输入参数
System.out.println(mmFormat.format(today));
及
您正在将一个整数(日期的月份)传递给日期格式方法
format方法将该整数解释为UNIX时间戳——自1970年以来的秒数
您需要将日期本身传递给格式化程序
您正在将一个整数(日期的月份)传递给日期格式方法
format方法将该整数解释为UNIX时间戳——自1970年以来的秒数
您需要将日期本身传递给格式化程序。today.getMonth()
和today.getYear()
返回解释为UNIX时间戳的int
。该值为1
和113
,对应于此日期
对象表示的大约1970年1月1日00:00:01 GMT
和1970年1月1日00:01:53 GMT
。要获得所需的结果,您需要传递Date
对象:
System.out.println(mmFormat.format(today));
today.getMonth()
和today.getYear()
返回一个int
,它被解释为UNIX时间戳。该值为1
和113
,对应于此日期
对象表示的大约1970年1月1日00:00:01 GMT
和1970年1月1日00:01:53 GMT
。要获得所需的结果,您需要传递Date
对象:
System.out.println(mmFormat.format(today));
您需要使用日历。看一看这张照片
你可以这样做-
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
System.out.println(cal.get(Calendar.MONTH)); // month in the Calendar class begins from 0
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
这将帮助您避免创建多个DateFormat
对象。另外,如果您想使用另一个日期而不是今天的日期,您只需将日期
传递给cal.setTime()
方法。您需要使用日历。看一看这张照片
你可以这样做-
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
System.out.println(cal.get(Calendar.MONTH)); // month in the Calendar class begins from 0
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
这将帮助您避免创建多个DateFormat
对象。另外,如果您想使用另一个日期而不是今天的日期,您只需将日期
传递给cal.setTime()
方法。这是因为所有这些方法都不推荐使用。使用
Calendar myCalendar = GregorianCalendar.getInstance();
myCalendar.get(Calendar.MONTH);
myCalendar.get(Calendar.YEAR);
myCalendar.get(Calendar.DAY_OF_MONTH);
这是因为所有这些方法都不推荐使用。使用
Calendar myCalendar = GregorianCalendar.getInstance();
myCalendar.get(Calendar.MONTH);
myCalendar.get(Calendar.YEAR);
myCalendar.get(Calendar.DAY_OF_MONTH);
这样更好
Date date=new Date(); // your date
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"\n"+month);
这样更好
Date date=new Date(); // your date
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"\n"+month);