大家好,又见面了,我是你们的朋友全栈君。
两种方法,通过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)。确切的结果取决于语言环境,但是通常:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196740.html原文链接:https://javaforall.cn