java获取当前年月日历_Java获取当前年月日、时间

本文介绍了两种在Java中获取当前日期和时间的方法,分别使用Date类和Calendar类。通过Calendar类可以方便地获取细致的时间字段,如年、月、日、小时等。同时展示了如何格式化日期和时间输出。
摘要由CSDN通过智能技术生成

两种方法,通过Date类或者通过Calendar类。Date类比较简单,但是要得到细致的字段的话Calendar类比较方便。

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Locale;

import org.junit.Test;

public class GetTimeNow {

/**

* 通过Calendar类获取

*/

@Test

public void getTimeNowThroughCalendar(){

//使用默认时区和语言环境获得一个日历。

Calendar rightNow = Calendar.getInstance();

/*用Calendar的get(int field)方法返回给定日历字段的值。

HOUR 用于 12 小时制时钟 (0 - 11),HOUR_OF_DAY 用于 24 小时制时钟。*/

Integer year = rightNow.get(Calendar.YEAR);

Integer month = rightNow.get(Calendar.MONTH)+1; //第一个月从0开始,所以得到月份+1

Integer day = rightNow.get(rightNow.DAY_OF_MONTH);

Integer hour12 = rightNow.get(rightNow.HOUR);

Integer hour24 = rightNow.get(rightNow.HOUR_OF_DAY);

Integer minute = rightNow.get(rightNow.MINUTE);

Integer second = rightNow.get(rightNow.SECOND);

Integer millisecond = rightNow.get(rightNow.MILLISECOND);

String TimeNow12 = year+"-"+month+"-"+day+" "+hour12+":"+minute+":"+second+":"+millisecond;

String TimeNow24 = year+"-"+month+"-"+day+" "+hour24+":"+minute+":"+second+":"+millisecond;

System.out.println("日历:"+rightNow+"n12小时制时钟:"+TimeNow12+"n24小时制时钟:"+TimeNow24);

}

/**

* 通过Date类获取

*/

@Test

public void getTimeNowThroughDate(){

Date date=new Date();

DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");

System.out.println(format.format(date));

//DateFormat类的静态工厂方法

System.out.println(format.getInstance().format(date));

System.out.println(format.getDateInstance().format(date));

System.out.println(format.getTimeInstance().format(date));

System.out.println(format.getDateTimeInstance().format(date));

//DateFormat带参数的静态工厂方法

//第一个参数是静态变量style有4中取值0、1、2、3分别对应SHORT、MIDIUM、LONG、FULL

//第二个参数根据环境敏感的Locale类的静态变量自定义输出

System.out.println(format.getDateInstance(0, Locale.CHINA).format(date));

System.out.println(format.getTimeInstance(0,Locale.CHINA).format(date));

System.out.println(format.getDateTimeInstance(2,2).format(date));

}

/**

* 两者结合。。。

*/

@Test

public void getTimeNowTogether(){

String TimeNow = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS").format(Calendar.getInstance().getTime());

System.out.println(TimeNow);

}

}

三种方法分别输出:

日历:java.util.GregorianCalendar[time=1454251772565,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=0,WEEK_OF_YEAR=6,WEEK_OF_MONTH=6,DAY_OF_MONTH=31,DAY_OF_YEAR=31,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=49,SECOND=32,MILLISECOND=565,ZONE_OFFSET=28800000,DST_OFFSET=0]

12小时制时钟:2016-1-31 10:49:32:565

24小时制时钟:2016-1-31 22:49:32:565

2016-01-31 22:49:50:36

16-1-31 下午10:49

2016-1-31

22:49:50

2016-1-31 22:49:50

2016年1月31日 星期日

下午10时49分50秒 CST

2016-1-31 22:49:50

2016-01-31 22:50:09:270

附:

可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORT 到 MEDIUM 到 LONG 再到 FULL)。确切的结果取决于语言环境,但是通常:

SHORT 完全为数字,如 12.13.52 或 3:30pm MEDIUM 较长,如 Jan 12, 1952 LONG 更长,如 January 12, 1952 或 3:30:32pm FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值