1. 程式人生 > >js和java中日期和日期字串的相互轉換和使用

js和java中日期和日期字串的相互轉換和使用

摘要:在工作中只要牽扯到日期,很大可能都會牽扯到日期的計算格式的轉換等用法,這篇文章就是要探討一下平常在 js和java中對於日期的使用。

js中日期的使用

js中日期的計算 和 比較

js中兩個日期字串的計算

################### 1 
//假定傳入的時間字串為  2017-09-10,2017-09-20
//計算這兩個日期字串之間相差的天數
function  dateDiff(start,end){ //start = 2017-09-10,  end = 2017-09-20
    //宣告要用到的變數
    var arrayDate;//宣告一個數組
    var startDate;
    var
endDate; var diffCount;//相差天數 arrayDate = start.split("-"); startDate = new Date(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);//轉換為日-月-年格式; arrayDate = end.split("-"); endDate = new Date(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);//轉換為日-月-年格式; diffCount = parseInt(Math.abs(startDate - endDate)/1000
/60/60/24 //獲取相差的毫秒數 在計算出相應的天數 return diffCount; } ################2 //計算兩個日期的相差的天數 第二種 function diff() { var start = "2017-09-10"; var end = "2017-09-20"; var array , startDate,endDate,count; //把日期字串轉換為日期 var str = new Date(start);//將日期字串轉換為日期
//獲取日期的毫秒數 startDate = str.getTime();//獲取開始時間毫秒數 endDate = new Date(end).getTime();//獲取結束時間毫秒數 count = parseInt(Math.abs(startDate-endDate) / 1000 / 60 / 60 /24) return count ;//count = 10; }

js中兩個日期或日期字串的比較

兩個日期的比較其實很簡單這裡簡單說幾種方法:
1.如果是兩個日期格式的時間 可以直接用><=去比較
2.首先將兩個日期轉換為毫秒數然後比較兩個日期的毫秒數也能達到目的
3.如果是兩個日期字串或者一方是日期一方是字串 ,這是同上所述只需先將日期字串轉換為日期格式 然後在轉換為毫秒數進行比較即可
以上所說的第一個方法的比較建立在雙方的格式一樣的基礎之上,2和3建立在毫秒數的比較則看自己的需求即可。
程式碼這裡就不贅述了。。

js中計算兩個日期相差 並迴圈出相隔的日期

        var start = "2017-02-10";
        var end = "2017-02-20";
        var i = 0;
        for(var i =Date.parse(start);i<Date.parse(end) ; i +=1000*60*60*24){

            //輸出當前的日期
            var curDate = new Date(i).format('yyyy-MM-dd');
            alert(curdate);//打印出當前的日期
            i++;

        }
        alert("相差的天數為"+i);

js中獲取當前時間 並且獲取當前時間往前或者往後退n天的計算

獲取現在的時間

 //獲取當前的時間  中國標準時間 :例如  Fri Sep 15 2017 16:38:45 GMT+0800 (中國標準時間)
 var now = new Date(); //獲取時間物件 也就是當前的時間
 // getDate()返回 當前日期中月份的某一天
 // setDate() 設定0-31 返回物件日期的毫秒數
 var a = now.setDate(new Date().getDate());//獲取當前的時間的毫秒數
 //根據需要轉換時間格式 例如 'yyyy-MM-dd'; 
 var str = now.format("yyyy-MM-dd"); //str ='年-月-日'

獲取當前時間七天前的日期

//獲取當前的時間
 var now = new Date(); //獲取時間物件
 now.setDate(new Date().getDate());//獲取當前的時間

 //獲取當前時間七天前的日期 例如 2017-09-21 七天之前是  2017-09-14
 var date = now.setDate(now.getDate() - 7);//其實就是月份中天數的相減 不足一月會自動到上個月
 //format之後相當於把日期轉換為字串
 alert(date.format("yyyy-MM-dd")); 

//相加和相減用法一樣這裡就不贅述!

java中日期的使用

java 日期轉字串

最常用的方法
1. 建立一個轉換類SimpleDateFormat 並設定轉換需要轉換的格式
2. 獲取需要轉換的日期
3. 使用SimpleDateFormat 的format方法進行轉換

程式碼如下:
public static void main(String[] args){
   //首先需要建立一個轉換日期的格式轉換類 在構造方法中傳入需要轉換的資料格式
   SimpleDateFormat  sm = new SimpleDateFormat("yyyy-MM-dd");
   //使用此類進行格式的轉換 將需要轉換的資料傳入到format中進行轉換
   String result = sm.format(new Date());
   //輸出轉換後的資料
   System.out.println("格式後:"+result);

}

java中字串轉日期

字串轉日期和日期轉字串其實差不多
程式碼如下 :將 20170802轉換成日期格式 在轉換成2017-08-02格式字串輸出;

public static void main(String[] args){
        String str = '20170802';//給出日期字串
        //設定需要轉化的日期格式  str 的格式要和yyyyMMdd一一致這樣才能轉換
        SimpleDateFormat sm = new SimpleDateFormat("yyyyMMdd");
        //進行轉換
        Date date = sm.parse(str);//得到轉化後的日期

        SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd");
        String formatTime = ss.format(date);
        System.out.println("日期"+formatTime);
}

java 兩個日期字串的相差天數以及迴圈輸出相差的日期時間

計算”2017-07-02”到”2017-07-10”直接查了多少天並迴圈輸出相差的時間;
程式碼如下:

public static void main(String[] args){

    //首先把日期字串轉換成時間格式的在求出其毫秒數
    Calander cal = Calander.getInstance();//初始化日期
    cal.set(2017,07,02);//設定當前日期
    Long startTime = cal.getTimeinMillis();//獲取當前時間的毫秒數
    cal.set(2017,07,10);//設定第二個時間
    Long endTime = cal.getTimeinMillis();
    Long dayTime = 1000*60*60*24;//一天的毫秒數;
    Long time = startTime;//設定臨時變數;
    int diffDay = 0;
    //迴圈
    while(time < endTime){
        diffDay++;
        time +=dayTime;
        SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
        String result = sm.format(time);
        System.out.println(result);

    }
    System.out.println("兩個日期相差天數"+diffDay);


}