數(shù)據(jù)庫創(chuàng)建時間的幾種方式

正常使用中有以下三種類型:


1. 使用Timestamp商玫,則會在數(shù)據(jù)庫里存儲:2017-12-21 07:20:01。

在不同時區(qū)起宽,顯示的都是2017-12-21 07:20:01震桶,但其實他們并不是同一時間了尖奔。


2. 存儲事件發(fā)生的時間毫秒值茬底,在不同時區(qū)解析出來的時間表示不一樣沪悲,但表達都是同一時間,能解決時區(qū)問題阱表。


3. 直接是Date類型是數(shù)據(jù)格式殿如,存儲年月日贡珊。


在數(shù)據(jù)庫里頭的展示格式如圖所示:



Java代碼里頭獲取的時間如圖所示:


1.TIMESTAMP格式


afaUser.setLastestLogin(new Date());

2.時間毫秒級


loginlog.setLastModifyTime(new Date().getTime());

3.Date類型


afaUser.setEndDate(new Date());

? SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");

   try {

? ? ? ? afaUser.setEndDate(sf.parse(sf.format(new Date())));

? ? ? ? afaUser.setStartDate(sf.parse(sf.format(new Date())));

? ? } catch (ParseException e) {? ? ? ? ? ?

? ? e.printStackTrace();

? ? }

 格式化注意由于數(shù)據(jù)庫是Date類型,所以無論怎么格式化涉馁,還是2017/12/21這種格式门岔。   



在往前端傳值的時候烤送,若是TIMESTAMP類型寒随,前端獲取的是long類型的時間戳,這時候就要進行格式轉換帮坚。所以這種格式比較麻煩妻往,盡量少用。


一叶沛、在實體類中進行轉換


? ? @Column(name = "LASTEST_LOGIN")

? ? private Date lastestLogin;? ? ? ? //返回前端會是毫秒時間戳蒲讯。

? ?

? ? @Transient

? ? private String lastLoginDate;? ? ? //新建一個字段忘朝,將lastestLogin格式轉化所需要的時間格式灰署。

? ?

? ? public String getLastLoginDate() {

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

? ? ? ? try {

? ? ? ? ? ? if(this.lastestLogin!=null){

? ? ? ? ? ? ? ? lastLoginDate=sf.format(lastestLogin);

? ? ? ? ? ? }

? ? ? ? } catch (Exception e) {

? ? ? ? }

? ? ? ? return lastLoginDate;

? ? }


? ? public void setLastLoginDate(String lastLoginDate) {

? ? ? ? this.lastLoginDate = lastLoginDate;

? ? }

二、在前端web進行轉換


<script language="javascript">?

? ? //擴展Date的format方法

? ? Date.prototype.format = function (format) {

? ? ? ? var o = {

? ? ? ? ? ? "M+": this.getMonth() + 1,

? ? ? ? ? ? "d+": this.getDate(),

? ? ? ? ? ? "h+": this.getHours(),

? ? ? ? ? ? "m+": this.getMinutes(),

? ? ? ? ? ? "s+": this.getSeconds(),

? ? ? ? ? ? "q+": Math.floor((this.getMonth() + 3) / 3),

? ? ? ? ? ? "S": this.getMilliseconds()

? ? ? ? }

? ? ? ? if (/(y+)/.test(format)) {

? ? ? ? ? ? format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

? ? ? ? }

? ? ? ? for (var k in o) {

? ? ? ? ? ? if (new RegExp("(" + k + ")").test(format)) {

? ? ? ? ? ? ? ? format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return format;

? ? }

? ? /**?

? ? *轉換日期對象為日期字符串?

? ? * @param date 日期對象?

? ? * @param isFull 是否為完整的日期數(shù)據(jù),?

? ? *? ? ? ? ? ? ? 為true時, 格式如"2000-03-05 01:05:04"?

? ? *? ? ? ? ? ? ? 為false時, 格式如 "2000-03-05"?

? ? * @return 符合要求的日期字符串?

? ? */?

? ? function getSmpFormatDate(date, isFull) {

? ? ? ? var pattern = "";

? ? ? ? if (isFull == true || isFull == undefined) {

? ? ? ? ? ? pattern = "yyyy-MM-dd hh:mm:ss";

? ? ? ? } else {

? ? ? ? ? ? pattern = "yyyy-MM-dd";

? ? ? ? }

? ? ? ? return getFormatDate(date, pattern);

? ? }

? ? /**?

? ? *轉換當前日期對象為日期字符串?

? ? * @param date 日期對象?

? ? * @param isFull 是否為完整的日期數(shù)據(jù),?

? ? *? ? ? ? ? ? ? 為true時, 格式如"2000-03-05 01:05:04"?

? ? *? ? ? ? ? ? ? 為false時, 格式如 "2000-03-05"?

? ? * @return 符合要求的日期字符串?

? ? */?


? ? function getSmpFormatNowDate(isFull) {

? ? ? ? return getSmpFormatDate(new Date(), isFull);

? ? }

? ? /**?

? ? *轉換long值為日期字符串?

? ? * @param l long值?

? ? * @param isFull 是否為完整的日期數(shù)據(jù),?

? ? *? ? ? ? ? ? ? 為true時, 格式如"2000-03-05 01:05:04"?

? ? *? ? ? ? ? ? ? 為false時, 格式如 "2000-03-05"?

? ? * @return 符合要求的日期字符串?

? ? */?


? ? function getSmpFormatDateByLong(l, isFull) {

? ? ? ? return getSmpFormatDate(new Date(l), isFull);

? ? }

? ? /**?

? ? *轉換long值為日期字符串?

? ? * @param l long值?

? ? * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss?

? ? * @return 符合要求的日期字符串?

? ? */?


? ? function getFormatDateByLong(l, pattern) {

? ? ? ? return getFormatDate(new Date(l), pattern);

? ? }

? ? /**?

? ? *轉換日期對象為日期字符串?

? ? * @param l long值?

? ? * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss?

? ? * @return 符合要求的日期字符串?

? ? */?

? ? function getFormatDate(date, pattern) {

? ? ? ? if (date == undefined) {

? ? ? ? ? ? date = new Date();

? ? ? ? }

? ? ? ? if (pattern == undefined) {

? ? ? ? ? ? pattern = "yyyy-MM-dd hh:mm:ss";

? ? ? ? }

? ? ? ? return date.format(pattern);

? ? }

? ? //alert(getSmpFormatDate(new Date(1279849429000), true));

? ? //alert(getSmpFormatDate(new Date(1279849429000),false));? ?

? ? //alert(getSmpFormatDateByLong(1279829423000, true));

? ? alert(getSmpFormatDateByLong(1279829423000,false));? ?

? ? //alert(getFormatDateByLong(1279829423000, "yyyy-MM"));

? ? //alert(getFormatDate(new Date(1279829423000), "yy-MM"));

? ? //alert(getFormatDateByLong(1279849429000, "yyyy-MM hh:mm"));? ?

</script>

所以在實際使用過程中可以使用Date或者事件發(fā)生的時間毫秒值局嘁,少用TIMESTAMP類型進行數(shù)據(jù)的存儲溉箕。



import java.text.*;

import java.util.Date;


/**

? SimpleDateFormat函數(shù)語法:

?

? G 年代標志符

? y 年

? M 月

? d 日

? h 時 在上午或下午 (1~12)

? H 時 在一天中 (0~23)

? m 分

? s 秒

? S 毫秒

? E 星期

? D 一年中的第幾天

? F 一月中第幾個星期幾

? w 一年中第幾個星期

? W 一月中第幾個星期

? a 上午 / 下午 標記符

? k 時 在一天中 (1~24)

? K 時 在上午或下午 (0~11)

? z 時區(qū)

*/

public class FormatDateTime {


? ? public static void main(String[] args) {

? ? ? ? SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");

? ? ? ? SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");

? ? ? ? SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等價于now.toLocaleString()

? ? ? ? SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 E ");

? ? ? ? SimpleDateFormat myFmt4=new SimpleDateFormat(

? ? ? ? ? ? ? ? "一年中的第 D 天 一年中第w個星期 一月中第W個星期 在一天中k時 z時區(qū)");

? ? ? ? Date now=new Date();

? ? ? ? System.out.println(myFmt.format(now));

? ? ? ? System.out.println(myFmt1.format(now));

? ? ? ? System.out.println(myFmt2.format(now));

? ? ? ? System.out.println(myFmt3.format(now));

? ? ? ? System.out.println(myFmt4.format(now));

? ? ? ? System.out.println(now.toGMTString());

? ? ? ? System.out.println(now.toLocaleString());

? ? ? ? System.out.println(now.toString());

? ? }? ?

? ?

}


效果如下:


效果:

2004年12月16日 17時24分27秒

04/12/16 17:24

2004-12-16 17:24:27

2004年12月16日 17時24分27秒 星期四

一年中的第 351 天 一年中第51個星期 一月中第3個星期 在一天中17時 CST時區(qū)

16 Dec 2004 09:24:27 GMT

2004-12-16 17:24:27

Thu Dec 16 17:24:27 CST 2004

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市悦昵,隨后出現(xiàn)的幾起案子肴茄,更是在濱河造成了極大的恐慌,老刑警劉巖但指,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寡痰,死亡現(xiàn)場離奇詭異,居然都是意外死亡棋凳,警方通過查閱死者的電腦和手機拦坠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剩岳,“玉大人贞滨,你說我怎么就攤上這事∨淖兀” “怎么了晓铆?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绰播。 經(jīng)常有香客問我骄噪,道長,這世上最難降的妖魔是什么蠢箩? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任腰池,我火速辦了婚禮尾组,結果婚禮上,老公的妹妹穿的比我還像新娘示弓。我一直安慰自己讳侨,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布奏属。 她就那樣靜靜地躺著跨跨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪囱皿。 梳的紋絲不亂的頭發(fā)上勇婴,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音嘱腥,去河邊找鬼耕渴。 笑死,一個胖子當著我的面吹牛齿兔,可吹牛的內(nèi)容都是我干的橱脸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼分苇,長吁一口氣:“原來是場噩夢啊……” “哼添诉!你這毒婦竟也來了?” 一聲冷哼從身側響起医寿,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤栏赴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后靖秩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體须眷,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年沟突,在試婚紗的時候發(fā)現(xiàn)自己被綠了花颗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡事扭,死狀恐怖捎稚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情求橄,我是刑警寧澤今野,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站罐农,受9級特大地震影響条霜,放射性物質發(fā)生泄漏。R本人自食惡果不足惜涵亏,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一宰睡、第九天 我趴在偏房一處隱蔽的房頂上張望蒲凶。 院中可真熱鬧,春花似錦拆内、人聲如沸旋圆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灵巧。三九已至,卻和暖如春抹沪,著一層夾襖步出監(jiān)牢的瞬間刻肄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工融欧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敏弃,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓噪馏,卻偏偏與公主長得像麦到,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子逝薪,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理隅要,服務發(fā)現(xiàn)蝴罪,斷路器董济,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • Android(安卓)時間戳和日期之間的轉化 https://blog.csdn.net/xiaocheng229...
    壓抑的內(nèi)心閱讀 756評論 0 0
  • OH經(jīng)典卡每日覺察提問 用直覺 1. 你看到了什么? 看到了圖書館要门,學生們在讀書虏肾。 2. 焦點是哪部分? 是書欢搜,第...
    斯慶催眠圖卡療愈師閱讀 142評論 0 0
  • 清明陵園祭母親封豪,墓碑如林花海新。 磕頭思母猶在世炒瘟,撫育兒女操碎心吹埠。
    老槐樹閱讀 267評論 1 1
  • 2017-11-14(70/99) 感恩 —— 迪士尼好萊塢酒店舒適可愛的環(huán)境,每個大人都曾是孩子疮装,卡通的存在就是...
    慢慢花開閱讀 227評論 0 0