Java获取日期时间及其格式处理

        对于Java处理日期时间有两个类,Date和Calendar,在java8 API文档中,Date大部分方法已被弃用,改为用Calendar类实现。

一、DateFormat类

先写一下DateFormat类,直接上代码直观(忽略不规范命名,给你一个眼神自己体会)。

public class TestDate {
	public static void main(String[] args) {
		Date date = new Date();
		String dateString;
		DateFormat dateFormat1 = DateFormat.getInstance();//默认SHORT风格
		dateString = dateFormat1.format(date);
		System.out.println("1: " + dateString);
		
		DateFormat dateFormat2 = DateFormat.getDateInstance();//默认应该是MEDIUM
		dateString = dateFormat2.format(date);
		System.out.println("2: " + dateString);
		DateFormat dateFormat21 = DateFormat.getDateInstance(DateFormat.SHORT);
		dateString = dateFormat21.format(date);
		System.out.println("21: " + dateString);
		DateFormat dateFormat22 = DateFormat.getDateInstance(DateFormat.MEDIUM);
		dateString = dateFormat22.format(date);
		System.out.println("22: " + dateString);
		DateFormat dateFormat23 = DateFormat.getDateInstance(DateFormat.FULL);
		dateString = dateFormat23.format(date);
		System.out.println("23: " + dateString);
		
		DateFormat dateFormat3 = DateFormat.getTimeInstance();
		dateString = dateFormat3.format(date);
		System.out.println("3: " + dateString);
		
		DateFormat dateFormat4 = DateFormat.getDateTimeInstance();
		dateString = dateFormat4.format(date);
		System.out.println("4: " + dateString);
		DateFormat dateFormat41 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT);
		dateString = dateFormat41.format(date);
		System.out.println("41: " + dateString);
		DateFormat dateFormat42 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM);
		dateString = dateFormat42.format(date);
		System.out.println("42: " + dateString);
		DateFormat dateFormat43 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
		dateString = dateFormat43.format(date);
		System.out.println("43: " + dateString);
		
		DateFormat dateFormat5 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.UK);
		dateString = dateFormat5.format(date);
		System.out.println("5: " + dateString);
	}
}

输出:

1: 19-8-18 下午4:37
2: 2019-8-18
21: 19-8-18
22: 2019-8-18
23: 2019年8月18日 星期日
3: 16:37:34
4: 2019-8-18 16:37:34
41: 2019年8月18日 星期日 下午4:37
42: 2019年8月18日 星期日 16:37:34
43: 2019年8月18日 星期日 下午04时37分34秒 CST
5: Sunday, 18 August 2019 16:37:34 o'clock CST

二、SimpleDateFormat类

该类允许用户自定义的日期和时间格式。

Date date = new Date();
String dateString;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd G hh:mm:ss z");
dateString = format.format(date);
System.out.println(dateString);

输出:

2019-08-18 公元 04:49:12 CST

三、获取当前日期

如果只是简单的获取当前时间,Date类完全可以处理。如上栗子。
但是如果想获取当前时间的前一天等,需要用到Calendar类。

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
calendar.add(Calendar.DATE, -1);
Date date = calendar.getTime();
String today = simpleDateFormat.format(date);
System.out.println(today);

输出:

2019-08-17 17:44:03

Calendar类其他示例:

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;//注意月份从0开始
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);

输出:

2019-8-18 17:46:59

四、获取指定日期为星期几

代码如下:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2022-01-01");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

注意一点,在Java中周日到周一对应的值依次为1,2,3,4,5,6,7;而JavaScript对应的值依次为0,1,2,3,4,5,6.

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值