Java/JSP/JS中的Date
在Java/JSP/JavaScript中都有Date类型
Date所在地
Date类型
Java中Date
java.util.Date
JSP中fmt:formatDate
JSP标签,可接收java.util.Date
JS中Date
JavaScript的Date对象和java.util.Date没关系
JavaScript中的Date虽然和Java没一毛钱关系,但是也可以用java.util.Date进行直接初始化
前端页面JS到后台Controller
从前端可以通过字符串的形式发送Date到后台,然后使用Spring的参数绑定接收
JS请求参数
1{"addDate":"2016-08-01"}
Spring参数绑定接收
1
2@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date addDate;
后台Controller到JSP
通过Model放入JSP
1model.addAttribute("addDate",addDate);
JSP中格式化取出,如果不进行格式化,是输出的Date.toString()的字符串
1
2
3
Ajax到JS
如果是通过Jquery的Ajax发送请求得到返回的Date类型,在JS中会被接收成一个JavaScript的Date
比如2016-08-08 15:57:45这个日期
1
2
3
4
5
6
7
8
9
10testDate:Object
date:8 <==8日
day:1 <==星期一
hours:15 <==15时
minutes:57 <==57分
month:7 <==代表8月
seconds:45 <==45秒
time:1470643065785 <==从1970年到现在的秒数
timezoneOffset:-480 <==时区
year:116 <==代表2016年
其中不便于让人理解的是 month 和 year 的数值,在JS中
month: 月份是从0开始到11结束,分别代表1-12月
year : 年份是从1900年作为基点到目前的时间,所以2016年是 1900+116
JSP传递到JS
在JSP中,如果直接取值 ${addDate} 得到是Date.toString()的输出字符串
1Wed Jul 06 00:00:00 CST 2016
可以通过该字符串实例化一个JavaScript的Date对象,例如
1
2var date = new Date("${addDate}"); <====JSP文件中的样子
var date = new Date("Wed Jul 06 00:00:00 CST 2016"); <====返回的HTML中实际的样子
JavaScript中的Date类型
JavaScript的Date 可以直接用Java的Date字符串进行实例化 ,其数据结构为
1
2
3
4
5
6
7
8
9
10
11
12
13var Date = {
var date,
day,
hours,
minutes,
month,
seconds,
time,
timezoneOffset,
year
.....
}
对于其中的参数提供了各种Get方法,其中需要注意的有以下几个
getFullYear() : 这个是获得当前的绝对年份,比如2016
getYear() : 这个是获得Year的值,比如2016年是相对1900年的116
getMonth(): 这个获得是当前月份减去1,原因是因为0-11代表1-12月