jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。

——————————————————————————————————————————–

中国古代是否有自己的历法是朝代是否确立的标志之一,可见日期时间对人们生活的重要性,在计算机中日期和时间仍然占有非常重要的地位。Java中日期是以1970-01-01 08::00:00为基准,其他时间为这个基准的相加(或者相减)的毫秒数。获取当前时间的毫秒数,可以使用“System.currentTimeMillis()”。为了方便使用JDK提供了一个日期时间类java.lang.Date,直接new Date(),也可以获取当前时间。

[code lang=”java”]
System.out.println(System.currentTimeMillis());
System.out.println(new Date().getTime());
[/code]

上面的代码执行时可能存在下面的输出比上面的输出大,是因为执行时时间已经变更,Date的getTime()方法会返回该时间的long型表示的值,如果不调用这个方法,会输出为”Mon Feb 01 22:34:06 CST 2016″(这个是当前时间的值)的格式。任何类都会继承Object方法,其中会实现toString(),方法,对象直接打印时会调用toString()方法,这点后面我们会有一章主讲这块,这里先了解一下,Date的toString就是把时间输出为这种格式。这种方式可能美国人更熟悉,对于中国人不太直观,那么怎么输出我们熟悉的格式呢?

jdk为格式化Date提供了一个工具类java.text.DateFormat,这是一个抽象类,最常用的子类为java.text.SimpleDateFormat,我们把当前时间输出为”2016-02-01 23:27:72″的格式,代码如下:

[code lang=”java”]
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
Date curDate = new Date();
System.out.println(dateFormat.format(curDate));
[/code]

jdk的把年月日以及各种时间输出的方式使用字母表示具体的格式,比如年使用”yyyy”,月使用”MM”,具体的对应关系如下表:
字母 日期或时间元素 表示 示例

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text TuesdayTue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard TimePSTGMT-08:00
Z 时区 RFC 822 time zone -0800

Date类也存在接收入参的构造方法,比如”Date curDate2 = new Date(System.currentTimeMillis());”同样可以获取当前时间,前面我们提到时间是以1970-01-01 08::00:00为基准的long型存储的,我们在初始化Date时,传入0值,看下会输出的是不是”1970-01-01 08::00:00″,代码如下:

[code lang=”java”]
Date date1970 = new Date(0);
System.out.println(dateFormat.format(date1970));
[/code]

工作中,日期的变化改变也是一个比较常用的功能。比如今天是2016-02-01是一个纪念日,那么2017-02-01我需要收到一个提醒,所以我们需要把时间调整为2017年的此刻,然后再进行一些其他的操作。我们可以采用字符串转换为日期的方式,比如:

[code lang=”java”]
Date date2017 = dateFormat.parse("2017-02-01 23:27:72");
System.out.println(date2017);
[/code]

这种方式要求我们必须确定的日期才能处理,使用起来不太方便,为了更方便处理时间变更,jdk提供了更优雅的方式Calendar日历。

[code lang=”java”]
Calendar calendar = Calendar.getInstance();
calendar.setTime(curDate2);
int curYear = calendar.get(Calendar.YEAR);
calendar.set(Calendar.YEAR, curYear + 1);
System.out.println(dateFormat.format(calendar.getTime()));
[/code]

setTime为Calendar对象设置一个时间,get(int)获取int表示的值, set(int, int)设置第一个入参表示的类型的值为第二个入参,比如”calendar.set(Calendar.YEAR, curYear + 1)”设置calendar的年为当前时间的年+1, getTime获取时间。get和set可以处理的类型在Calendar有常量定义,大家可以在Calendar的源码中查看。

小练习:
打印出从1000年到2000年中哪些是闰年。

[code lang=”java”]
package com.sunhaojie.learntest.ninth;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
*
* @ClassName DateTest
* @Description 日期测试类
*
* @author sunhaojie 3113751575@qq.com
* @date 2016年2月1日 下午11:24:31
*/
public class DateTest {

/**
*
* @Title main
* @Description 日期测试
* @param args
* @return void
*
* @author sunhaojie 3113751575@qq.com
* @throws ParseException
* @date 2016年2月1日 下午10:19:27
*/
public static void main(String[] args) throws ParseException {
System.out.println(System.currentTimeMillis());
System.out.println(new Date().getTime());
System.out.println(new Date());

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
Date curDate = new Date();
System.out.println(dateFormat.format(curDate));

Date curDate2 = new Date(System.currentTimeMillis());
System.out.println(dateFormat.format(curDate2));

Date date1970 = new Date(0);
System.out.println(dateFormat.format(date1970));

Date date2017 = dateFormat.parse("2017-02-01 23:27:72");
System.out.println(date2017);

Calendar calendar = Calendar.getInstance();
calendar.setTime(curDate2);
int curYear = calendar.get(Calendar.YEAR);
calendar.set(Calendar.YEAR, curYear + 1);
System.out.println(dateFormat.format(calendar.getTime()));
}

}
[/code]

****************************************************************************************************
****************************************************************************************************
*******                                     Java免费在线培训学员招募                                          *******
****************************************************************************************************
****************************************************************************************************