date-in-javascript-and-java

javascript

我们常常需要各种整式的日期、时间,为此我整理了一下javascript和java中处理日期和时间的方法

当时间为2016年7月5日(星期二)中午12点22分51秒时,以下包含了所有Date中get开头的方法:

date.getDate() 5 //日期
date.getDay() 2 //星期
date.getFullYear() 2016 //年
date.getHours() 12 //小时
date.getMilliseconds() 121 //毫秒
date.getMinutes() 22 //分钟
date.getMonth() 6 //月(起始0)
date.getSeconds() 51 //秒
date.getTime() 1467692571121 //距1970年1月1日之间的毫秒数
date.getTimezoneOffset() -480 //时区偏移(单位为分钟)
date.getUTCDate() 5 //全球标准时间
date.getUTCDay() 2
date.getUTCFullYear() 2016
date.getUTCHours() 4 //看出时差了吗
date.getUTCMilliseconds() 121
date.getUTCMinutes() 22
date.getUTCMonth() 6
date.getUTCSeconds() 51
date.getYear() 116 //因千年虫问题,已弃用
date.toDateString() Tue Jul 05 2016
date.toISOString() 2016-07-05T04:22:51.121Z //标准时间字符串,这里的T表示time,Z表示zero(UTC offset)
date.toJSON() 2016-07-05T04:22:51.121Z
date.toLocaleDateString() 2016/7/5
date.toLocaleString() 2016/7/5 下午12:22:51
date.toLocaleTimeString() 下午12:22:51
date.toTimeString() 12:22:51 GMT+0800 (中国标准时间)
date.toUTCString() Tue, 05 Jul 2016 04:22:51 GMT

如果以上都不能满足你的要求,那就要自己拼接字符串了。。

比如你想要2016-07-05T04:22:51Z,上面有差不多的,就是没有一样的

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function pad(number) {
if (number < 10) {
return '0' + number;
}
return number;
}

function getDateString(date) {
return date.getUTCFullYear() +
'-' + pad(date.getUTCMonth() + 1) +
'-' + pad(date.getUTCDate()) +
'T' + pad(date.getUTCHours()) +
':' + pad(date.getUTCMinutes()) +
':' + pad(date.getUTCSeconds()) +
'Z';
}

var dd = new Date();
console.log(getDateString(dd));

java

java.util.Date的很多方法已经不提倡使用了,new Date的话,也是用毫秒数。不过java还有强大的java.text.DateFormat,java.text.SimpleDateFormat等,轻松搞定格式转换:

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.alpha;

import java.text.ParseException;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.TimeZone;

public class Main {
public static void main(String[] args) {
Date date = new Date();
String dateString = dateToString(date);
System.out.println("dateString " + dateString);

Date covert = stringToDate(dateString);
System.out.println("date " + covert);

String back = dateToString(covert);
System.out.println("dateString " + back);

}

private static String dateToString(Date date) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return dateFormat.format(date);
}

private static Date stringToDate(String string) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = null;
try {
date = dateFormat.parse(string);
} catch (ParseException e) {

}
return date;
}
}

reference Date on MDN

原创文章 欢迎转载但请注明出处。http://beetle2013.github.io/blog/