常用格式為:yyyy-MM-dd HH:mm:ss
以 2019-12-31 06:07:59:666 時間為例:
字符 |
含義 |
Example |
y(小寫的y) |
年 |
yyyy---->2019 |
M(大寫的M) |
月 |
? MM---->12 |
d(小寫的d) |
一月中的天數(shù) |
? dd---->31 |
H(24 小時制,大寫的H) |
小時(0-23) |
? HH---->18 |
h(12 小時制,小寫的h) |
小時(1-12) |
? hh---->06 |
m(小寫的m) |
分 |
? mm---->07 |
s(小寫的s) |
秒 |
? ss---->59 |
S(大寫的S) |
毫秒 |
?SSS---->666 |
Y(大寫的y) |
Week Year |
YYYY---->2020 |
D(大寫的D) |
一年中天數(shù) |
? DD---->365 |
yyyy-MM-dd與YYYY-MM-dd區(qū)別在哪里?
Y 代表 Week Year,表示當天周所在的年份。這種方式將會把一年劃分成52 周/53周(類似于閏年的概念,每隔幾年將會增加一周)。Week Year下每周僅屬于某一年,如果某年的第一周或最后一周跨年,就會導致部分日期年份與實際不符。
Week Year 存在兩種標準:
ISO 8601:國際標準,每周從周一開始,每年的第一周至少包含 4 天
Common:通用標準,每周從周日開始,每年的第一周至少包含 1 天
使用 ISO 8601 標準,分別看一下最后一周跨年以及第一周跨年的例子。
2015 年最后一周跨年,2016 前三天(與2015年12月的前四天默認是一周,是2015的周)使用 YYYY 最后結(jié)果為 2015,時間看起來被回退了。
2020 年第一周跨年,2019 年最后兩天(不足4天,所以默認為下周,下周為2020年的周)使用 YYYY 結(jié)果為 2020。
? ??
代碼驗證
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo {
public static void main(String[] args) {
// 將指定時間轉(zhuǎn)換成時間戳,再由時間戳轉(zhuǎn)換成時間
String Stime = "2015-01-01 17:17:22"; // 處理前的時間
long Ltime = 0; // 時間戳
System.out.println("處理前的時間:" + Stime);
// 時間轉(zhuǎn)為時間戳
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date2 = simpleDateFormat.parse(Stime);
Ltime = date2.getTime();
System.out.println("時間轉(zhuǎn)時間戳結(jié)果:" + Ltime);
} catch (ParseException | java.text.ParseException e) {
e.printStackTrace();
}
//將時間戳轉(zhuǎn)換為時間
String res = simpleDateFormat.format(Ltime);
System.out.println("時間戳轉(zhuǎn)時間結(jié)果:" + res);
}
}
運行結(jié)果:
處理前的時間:2015-01-01 17:17:22
時間轉(zhuǎn)時間戳結(jié)果:1420103842000
時間戳轉(zhuǎn)時間結(jié)果:2015-01-01 17:17:22
可以看出兩次時間是一樣的。
將代碼中的yyyy改為YYYY后
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
運行結(jié)果:
處理前的時間:2015-01-01 17:17:22
時間轉(zhuǎn)時間戳結(jié)果:1419758242000
時間戳轉(zhuǎn)時間結(jié)果:2015-12-28 17:17:22
可以看出兩次時間不是一樣的。
oracle和java的日期格式的差異
java中的的日期格式為:
yyyy-MM-dd HH:mm:ss:代表將時間轉(zhuǎn)換為24小時制,例: 2020-01-07 13:21:55
yyyy-MM-dd hh:mm:ss:代表將時間轉(zhuǎn)換為12小時制,例: 2020-01-07? 03:24:21
oracle中的日期格式為(不區(qū)分大小寫):
yyyy-MM-dd HH24:mi:ss:代表oracle中的24小時制,例:2020/1/7 13:21:55
yyyy-MM-dd HH:mi:ss:? 代表oracle中的12小時制,例:2020/1/7 9:21:55
之所以 oracle和java不同,是因為我們知道oracle是不區(qū)分大小寫的,所以java中根據(jù)大小寫來代表24小時和12小時的表達式在oracle中就會出問題,oracle中將24小時的時和分做了特殊處理.如上所示,在hh后面加上了24,將mm改為了mi.文章來源:http://www.zghlxwxcb.cn/news/detail-744181.html
大部分內(nèi)容轉(zhuǎn)載自: 關(guān)于日期格式你必須知道的坑( yyyy-MM-dd HH:mm:ss SSS)_yyyy-mm-dd hh:mm:ss.sss_37358143的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-744181.html
到了這里,關(guān)于Java 日期格式(yyyy-MM-dd HH:mm:ss SSS)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!