1. 程式人生 > >針對不同資料庫實現日期格式化

針對不同資料庫實現日期格式化

若想把在不同資料庫拿出來的各種日期轉換成不同的格式的話,參考以下做法:

資料庫中的資料是以System.currentTimeMillis();的方式存進去的。

MySQL:Date_format(FROM_UNIXTIME(create_time / 1000),'%Y-%m');//轉為2014-11的格式

   FROM_UNIXTIME(create_time / 1000)轉換為2014-08-14 03:45:03的格式,FROM_UNIXTIME(seds),seds一般為10位數字。

其中格式化串各個字元代表的意思如下:

  %M  月名字(January……December) 
  %W 星期名字(Sunday……Saturday) 


  %D  有英語字尾的月份的日期(1st, 2nd, 3rd。。。) 
  %Y  年, 數字, 4 位 
  %y  年, 數字, 2 位 
  %a  縮寫的星期名字(Sun……Sat) 
  %d  月份中的天數, 數字(00……31) 
  %e  月份中的天數, 數字(0……31) 
  %m  月, 數字(01……12) 
  %c   月, 數字(1……12) 
  %b   縮寫的月份名字(Jan……Dec) 
  %j   一年中的天數(001……366) 
  %H   小時(00……23) 
  %k    小時(0……23) 
  %h   小時(01……12) 
  %I   小時(01……12) 
  %l    小時(1……12) 

  %i    分鐘, 數字(00……59) 
  %r   時間,12 小時(hh:mm:ss [AP]M) 
  %T   時間,24 小時(hh:mm:ss) 
  %S   秒(00……59) 
  %s    秒(00……59) 
  %p   AM或PM 
  %w   一個星期中的天數(0=Sunday ……6=Saturday ) 
  %U    星期(0……52), 這裡星期天是星期的第一天 
  %u    星期(0……52), 這裡星期一是星期的第一天 
  %%    一個文字“%”。

SQLServer:substring(convert(varchar(10),dateadd(ss,create_time/1000 + 28800,'1970-01-01'),120),1,7);//格式為2014-11

DATEADD() 函式在日期中新增或減去指定的時間間隔。

CONVERT() 函式是把日期轉換為新資料型別的通用函式。

CONVERT() 函式可以用不同的格式顯示日期/時間資料。


Oracle:to_char(TO_DATE('01011970','mmddyyyy')+1/24/60/60*(create_time / 1000),'yyyy-mm');

TO_DATE(datechar,format)把datechar字串轉為format指定的date型別日期格式。

TO_CHAR(date,format)把date日期轉換為format指定的字串型別日期。

unixtime表示的是從1970年1月1日0時0分0秒開始到現在的秒數。