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);


}

你可能感兴趣的:(js和java中日期和日期字符串的相互转换和使用)