Java中的日期和时间

1. 如何取得年月日、小时分钟秒?

public class DateTimeTest {
	public static void main(String[] args) {
	Calendar cal = Calendar.getInstance();
	System.out.println(cal.get(Calendar.YEAR));
	System.out.println(cal.get(Calendar.MONTH)); // 0 -11
	System.out.println(cal.get(Calendar.DATE));
	System.out.println(cal.get(Calendar.HOUR_OF_DAY));
	System.out.println(cal.get(Calendar.MINUTE));
	System.out.println(cal.get(Calendar.SECOND));
	// Java 811.LocalDateTime dt = LocalDateTime.now();
	System.out.println(dt.getYear()); 
	System.out.println(dt.getMonthValue()); // 1 -12
	System.out.println(dt.getDayOfMonth());
	System.out.println(dt.getHour());
	System.out.println(dt.getMinute());
	System.out.println(dt.getSecond());
	}
}

2. 如何取得从1970年1月1日0时0分0 秒到现在的毫秒数?

Calendar.getInstance().getTimeInMillis();  //第一种方式
System.currentTimeMillis();  //第二种方式
// Java 8
Clock.systemDefaultZone().millis();

3. 如何取得某月的最后一天?


//获取当前月第一天:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
System.out.println("===============first:"+first);

//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = format.format(ca.getTime());
System.out.println("===============last:"+last);

//Java 8 
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);

4. 如何格式化日期?

Java.text.DataFormat 的子类(如SimpleDateFormat 类)中的format(Date)方法可将日期格式化。
Java 8 中可以用java.time.format.DateTimeFormatter来格式化时间日期,

代码如下所示:


import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
class DateFormatTest {

public static void main(String[] args) {
	SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd");
	Date date1 = new Date();
	System.out.println(oldFormatter.format(date1));

	// Java 8
	DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
	LocalDate date2 = LocalDate.now();
	System.out.println(date2.format(newFormatter));
	}
}

补充:Java的时间日期API一直以来都是被诟病的东西,为了解决这一问题,Java 8中引入了新的时间日期API,其中包括LocalDate、LocalTime、LocalDateTime、Clock、Instant 等类,这些的类的设计都使用了不变模式,因此是线程安全的设计

5. 打印昨天的当前时刻?


import java.util.Calendar;
class YesterdayCurrent {
	public static void main(String[] args){
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.DATE, -1);
		System.out.println(cal.getTime());
	}
}

//java-8

import java.time.LocalDateTime;
class YesterdayCurrent {
	public static void main(String[] args) {
		LocalDateTime today = LocalDateTime.now();
		LocalDateTime yesterday = today.minusDays(1);
		System.out.println(yesterday);
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值