首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日期操作

【Date及其常用API】

1、Java中的时间

Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表示一个特定的时间点;

固定的时间点叫纪元(epoch),是UTC时间1970年1月1日00:00:00;

UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间。

2、Date类简介

java.util.Date类封装日期及时间信息。

Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。

Date date=new Date();//系统当前的日期及时间信息

System.out.println(date);//Sun Jan 06 11:52:55 CST 2013

long time = date.getTime();//1970年1月1日至今的毫秒数

3、setTime和getTime方法

/** 使用setTime和getTime设置及获取时间 */

public void testSetTime(){

Date date=new Date();

System.out.println(date);//输出当天此时此刻的日期和时间

long time = date.getTime();

time+=60*60*24*1000;

date.setTime(time);

System.out.println(date);//输出明天此时此刻的日期和时间

}

/** 获取当前系统时间 */

public void testGetTime(){

Date date=new Date();

long time = date.getTime();

}

4、Date重写toString

Date重写了toString()方法,用一个字符串描述当前Date对象所表示的时间。格式如下:

Mon Feb 17 15:36:55 CST 2014

【SimpleDateFormat】

1、SimpleDateFormat简介

java.text.SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期->文本)、解析(文本->日期)和规范化。

构造方法

1)SimpleDateFormat()

2)SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。

方法

1)final String format(Date date) Date=>String

2)Date parse(String source) throws ParseException String=>Date

2、日期模式匹配字符

字符的含义:

y:年

M:月

d:日

E:星期

a:AM或PM标识

H:小时(24小时制)

h:小时(12小时制)

m:分钟

s:秒

3、将Date格式化为String

/** 日期格式化 */

public void testFormat(){

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date();

String dateStr=sdf.format(date);

}

4、将String格式化为Date

/** 和format方法相反,parse方法用于按照特定格式将表示时间的字符串转换为Date对象*/

public void testParse() throws Exception{

String str="2013-12-25";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Date date=sdf.parse(str);

}

【Calendar】

1、Calendar简介

java.util.Calendar类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算;

Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。

2、getInstance方法

Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象;

Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化

Calendar c=Calendar.getInstance();

/**使用Calendar及子类获取时间*/

public void testGetInstance(){

Calendar c=Calendar.getInstance();

System.out.println(c.getClass().getName());//输出Calendar对象所属的实际类型

System.out.println(c.getTime());//getTime方法返回对应的Date对象

GregorianCalendar c1=new GregorianCalendar(2013,Calendar.DECEMER,25);

}

3、设置日期及时间分量

/** 设置日期及分量 */

public void testSet(){

Calendar c=Calendar.getInstance();

c.set(Calendar.YEAR,2014);

c.set(Calendar.MONTH,Calendar.DECEMBER);

c.set(Calendar.DATE,25);

System.out.println(c.getTime());//Thu Dec 25 16:02:08 CST 2014

c.set(Calendar.DATE,32);

System.out.println(c.getTime());//The Jan 01 16:02:08 CST 2015

}

4、获取日期及时间分量

使用Calendar提供的get方法及一些常量可以获取日期及时间分量。

static int YEAR指示年份的字段数字。

static int MONTH指示月份的字段数字。

static int DATE指示一个月份中的第几天。

static int DAY_OF_WEEK指示一个星期中的某天,1为星期日。

/** 获取时间及分量 */

public void testGet(){

Calendar c=Calendar.getInstance();

c.set(Calendar.YEAR,2014);

c.set(Calendar.MONTH,Calendar.DECEMBER);

c.set(Calendar.DATE,25);

int dayOfWeek=c.get(Calendar.DAY_OF_WEEK);

System.out.println(dayOfWeek);//输出为5,表示周四,周日为每周的第1天

}

5、getActualMaximum方法

int getActualMaximum(int field)给定此Calendar的时间值,返回指定日历字段可能拥有的最大值,例如:

int year=2014;

Calendar c=Calendar.getInstance();

c.set(Calendar.YEAR,year);

c.set(Calendar.DATE,1);

for(int month=Calendar.JANUARY;month

c.set(Calendar.MONTH,month);

}

6、add方法

void add(int field,int mount)为给定的时间分量的值加上给定的值,若给定的值为负数则是减去给定的值。

/** 输出一年后再减去3个月的日期*/

public void testAdd(){

Calendar calendar=Calendar.getInstance();

calendar.add(Calendar.YEAR,1);//加一年

calendar.add(Calendar.MONTH,-3);//减3个月

}

7、setTime和getTime方法

Date getTime()使用Date描述Calendar表示的日期并返回

void setTime(Date d)使Calendar表示Date所描述的日期

/** 通过Date对象设置日期,在获取日期*/

public void testsetTimeAndGetTime(){

Calendar calendar=Calendar.getInstance();

Date date=new Date();

calendar.setTime(date);

date=calendar.getTime();

}

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180224G14ORC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券