1. javascript秒轉換日時分秒格式
function formatDate(){
var milliseconds=2698169*1000;//秒變微秒
var dat = new Date(milliseconds);//生成日期
var year = dat.getFullYear();//取得年
var month = dat.getMonth()+1; //取得月,js從0開始取,所以+1
var date1 = dat.getDate(); //取得天
var hour = dat.getHours();//取得小時
var minutes = dat.getMinutes();//取得分鍾
var second = dat.getSeconds();//取得秒
alert(dat+" | "+year+"年"+month+"月"+date1+"日"+hour+"時"+minutes +"分"+second+"秒" );
}
2. JS日期格式的轉換
<script>
var myDate = new Date(1314005630000+0800);
document.write(myDate);
</script>
3. 前端JS如何將UTC世界時間格式轉換為本地時間格式
背景在前後端數據介面通信中,後台返回的時間往往是UTC格式的,即2020-10-12T10:31:35.891724+00:00這種,這可能是因為在資料庫中存儲時間格式選擇的是TIMESTAMP。
作為前端,我們需要將其轉換為標準的本地格式,並用「YYYY-MM-DDHH:mm:ss」這種格式呈現給用戶,用戶才能看得懂。
那麼通常情況下,怎麼將他們進行轉換呢?
探究先來理解下UTC時間和本地時間
以北京為例,我在寫這篇博客的時候,時間是:
vard=newDate()d.toLocaleTimeString()//"上午10:46:42"而此時的UTC時間為:
d.toUTCString()//"Tue,13Oct202002:46:42GMT"也就是說,我所在的北京(東八區)時間為上午的10點,而此時的UTC時間(世界時間)為凌晨2點,所以東八區相比於utc時間,提前了8個小時。
可能有的小夥伴迷糊了,為什麼是提前了8個小時?
這就牽扯到了全球時區的劃分,眾所周知:
??全球共24個時區,每個相鄰時區的跨度為一小時。
??時區的劃分,以零時區為基準,向東則加,向西則減,簡稱東加西減。
時區由於地球的自轉,造成了我們看到的太陽是東升西落的,對於一個很大的地域而言,東邊總是比西邊先看到太陽。
比如對於中國而言,下午6點,北京就已經是傍晚了,而新疆地區的傍晚,可能在下午7點以後。如果以北京為例,太陽到達近地點的時間是中午12點,而新疆呢,太陽到達近地點可能在13點(數據不很精確)。
而在世界范圍呢,每個地區,都把太陽到達近地點的時間看作是一天中的中午12點,這就導致全球從東向西,全球24個時區會依次度過自己時區的12點
為了讓各地時間統一起來,方便交流,就把全球劃分為24個時區(因為地球自轉一周是24個小時),從零時區開始,東加西減,用一個時間格式來表示,這就是UTC(世界時間)
那麼,對於一個後台返回的標准時間(以2020-10-12T10:31:35.891724+00:00為例)來說,最後面的+00:00則告訴了你當前時間是以哪個時區來計算的(+00:00代表了零時區)。
比如,將2020-10-12T10:31:35.891724+00:00轉換成東八區時間也即北京時間:
newDate('2020-10-12T10:31:35.891724+00:00')//MonOct12202018:31:35GMT+0800(中國標准時間)可以看到後面有+0800,意味著這是東八區的本地時間,即世界時間向東跨越了八個時區(加了8個小時)就是你看到的北京本地時間。
轉換上面講的其實沒什麼用,只是幫助大家理解一些基礎的概念。
想要將復雜的UTC轉成需要的格式,最好當然是尋找插件來幫忙了。
1、moment不會吧?不會吧?大名鼎鼎的moment不會真的有人不知道吧?
importmomentform'moment'vartime='2020-10-12T10:31:35.891724+00:00'moment(newDate(time)).format('YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"moment還有個專門的時區處理類庫,點我直達
用了這個類庫,也能正確處理時區之間的轉換哦
首先安裝這個庫npminstallmoment-timezone,然後就可以愉快的寫代碼了
varmoment=require('moment-timezone');vartz='Asia/Choibalsan'//時區vartime='2020-10-12T10:31:35.891724+00:00'moment.utc(time).tz(tz).format()//"2020-10-12T18:31:35+08:00"moment.utc(time).tz(tz).format('YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"當然這里還需要注意一下,如果你傳遞的參數是hh:mm:ss而不是HH:mm:ss,那麼moment在處理上是有區別的,hh將會採用12小時制,HH則會採用24小時制。
moment.utc(time).tz(tz).format('YYYY-MM-DDhh:mm:ss')//"2020-10-1206:31:35"2、date-fns看這名稱就能猜到,這又是一個處理時間的插件。而且,相比moment一點不虛呢,他是一個類似lodash的工具集,而且是專門針對各種日期的工具集。
而且相比於moment,這個插件相當的輕量。
import{format}from'date-fns'vartime='2020-10-12T10:31:35.891724+00:00'format(newDate(time),'YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"其他更詳細的API大家自己看文檔吧,我就不過多的贅述了。
歡迎小夥伴們留言討論。
作者:晴天同學
4. js 獲取當前時間格式怎麼轉換
僅針對這個問題來說,不需要那麼大量的代碼即可完成
方案1(適用於中國標准時間):
vardate=newDate(+newDate()+8*3600*1000).toISOString().replace(/T/g,'').replace(/.[d]{3}Z/,'')
方案2(只用於題目中所述的格式轉換):
vardate=newDate().toLocaleString().replace(/[年月]/g,'-').replace(/[日上下午]/g,'');
方案3(最准確但最麻煩,不推薦):
vardate=newDate();
varresult=date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+''+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
5. jsp 中怎樣把日期dd/mm/yyyy 轉換成 yyyy-mm-dd 格式
首先如果格式為dd/mm/yyyy的日期為date類型,那麼很easy,利用SimpleDateFormat類就可以,具體:
SimpleDateFormat sdt = new SimpleDateFormat();
sdt.setFormat("yyyy-MM-dd");//MM一定是大專寫,小寫代表分鍾
sdt.Format(date);//date就是屬你得到的那個dd/mm/yyyy的日期
想轉換回來就按上面說的把格式轉換回來就ok了
如果是String 類型的,那麼估計要費事了,你需要不停的用subString()方法把字元串截取拼接,這個應該是最簡單的方法了。
ps:代碼是我手寫的,有些可能拼寫有誤,見諒