首先我们知道java里面的日历类是Calendar,另外还有Java 8 的LocalDateTime,接下来就让我们一起来看是和使用:
1.如何取年、月、日、小时、分钟、秒?
package renwu;
import java.text.DateFormat;
import java.util.Calendar;
public class GetDate {
public static void main(String args[]){
Calendar ca1 = Calendar.getInstance();
System.out.print(ca1.get(Calendar.YEAR));
System.out.print("-"+ca1.get(Calendar.MONTH));//1月是从0开始的,即取值范围是0~11
System.out.print("-"+ca1.get(Calendar.DATE));
System.out.print(" "+ca1.get(Calendar.HOUR_OF_DAY));
System.out.print("-"+ca1.get(Calendar.MINUTE));
System.out.println("-"+ca1.get(Calendar.SECOND));
//java 8
LocalDateTime ldt1 = LocalDateTime.now();
System.out.print(ldt1.getYear());
System.out.print("-"+ldt1.getMonthValue());//这里是从1开始的,即1~12
System.out.print("-"+ldt1.getDayOfMonth());
System.out.print(" "+ldt1.getHour());
System.out.print("-"+ldt1.getMinute());
System.out.print("-"+ldt1.getSecond());
}
}
2.如何取某月的第一天和最后一天?
Calendar ca2=Calendar.getInstance();
ca2.add(Calendar.MONTH, 0);
ca2.set(Calendar.DAY_OF_MONTH, 1);//此处设置为1号
String first = DateFormat.getDateInstance().format(ca2.getTime());
System.out.println("第一天:"+first);
Calendar ca3=Calendar.getInstance();
ca3.set(Calendar.DAY_OF_MONTH, ca3.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = DateFormat.getDateInstance().format(ca3.getTime());//格式化日期
System.out.println("最后一天:"+last);
//java8
LocalDate today = LocalDate.now();
//本月的第一天
LocalDate firstDay = LocalDate.of(today.getYear(), today.getMonth(), 1);
//本月的最后一天
LocalDate lastDay = today.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("第一天:"+firstDay);
System.out.println("最后一天:"+lastDay);
3.如何格式化日期?
(1)Java.text.DataFormat的子类(如SimpleDataFormat)中的format(Data)方法可将日期格式化。
(2)Java 8 中可以用java.time.format.DateTimeFormatter来格式化日期,代码如下:
SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd");
Date data1 = new Date();
System.out.println(oldFormatter.format(data1));
//java 8
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate data2 = LocalDate.now();
System.out.println(data2.format(newFormatter));