java有关Time类型数据的接收和转换

一:前言

  有关Time的时间其实很少有用到。但是用到就很纠结了,转换和保存,都是烦人的事情,我自己就在这上面吃过一个亏,所以就加载下来吧!

二:内容

      (1):被坑的地方

        实体类

import java.sql.Time;


public class Student {
    private Time startTime;
    
    private Time endTime;

    public Time getStartTime() {
        return startTime;
    }

    public void setStartTime(Time startTime) {
        this.startTime = startTime;
    }

    public Time getEndTime() {
        return endTime;
    }

    public void setEndTime(Time endTime) {
        this.endTime = endTime;
    }
    
    
}
View Code

      测试代码

public static void main(String[] args) throws ParseException {
        Student s=new Student();
        Time time=new Time(Long.valueOf("41400000"));
                s.setStartTime(time);
                time.setTime(Long.valueOf("34200000"));
                s.setEndTime(time);
                System.out.println("开始时间-->"+s.getStartTime());
        System.out.println("结束时间--->"+s.getEndTime());
        

}        
View Code

这里打印出来会看到开始时间和结束时间变成一样的了。

这个时候,你就会觉得这里的时间怎么变成一样了。说白了Time还是一个对象,那么在改变对象之后,对象的数据就改变了,那么startTime也就随之改变了。所以这里需要重新包装下

(二)有关在接口上面接收Time类型数据

我自己测试的就是app端传入长整形的数据,后台可以直接用Time接收,再进行转换如下

Time time=new Time(Long.valueOf(receive));//receive是接收到的长整形数据

(三)有关时间的转换和计算

(1)有关Date--->Time---->Long之间的转换

package com.wuhao.alltime;

import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class AllTime {
    public static void main(String[] args) {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d=new Date();
        //Date ---->long
        long dateToLong=Long.valueOf(d.getTime());
        System.out.println(dateToLong);
        
        //Date--->Time
        Time time=new Time(d.getTime());
        System.out.println(time);
        
        //long---->Time
        Time t=new Time((Long.valueOf("1429686000000")));
        System.out.println(t.toString());
     
        //转换后如:08:30:00
         Time t1=new Time((Long.valueOf("1800000")));
         System.out.println(t1);
         
         //long------>Date
         long l=1429686000000l;//最后是个l
         Date dd=new Date(l);
         System.out.println(dd);
         System.out.println(sdf.format(d));
         
         
         //Time--->long
         Time times=new Time(1800000);
         System.out.println(times.getTime());
         
         //Time--->Date
         Time timedate=new Time((Long.valueOf("1800000")));
        SimpleDateFormat sdfs = new SimpleDateFormat("HH:mm:ss",Locale.getDefault());
        Date dates;
        try {
            dates = sdfs.parse(timedate.toString());
            System.out.println(dates);
        } catch (ParseException e) {
            e.printStackTrace();
        }
         
    }    
}
View Code

有关时间的转换还是很麻烦的。

(2):有关时间的加减

package com.wuhao.alltime;

import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DatePlus {
    public static void main(String[] args) {
        String aa="2015-04-28 12:00:00";
        String bb="2015-04-28 15:30:00";
        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss",Locale.getDefault());
        try {
            Date d1=sd.parse(aa);
            Date d2=sd.parse(bb);
            //一秒等于1000毫秒,再除以60就是分钟,在除以60就是小时
            double c=(d2.getTime()-d1.getTime())/(60*1000);
            System.out.println(c);
            double hours=c/60;
            System.out.println(hours);
            System.out.println(c/3600);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}
View Code

(三)总结

      时间的转换转换多了就还是不错的,总的去进行尝试的。5月三十号毕业答辩啊,我的论文和系统都还没有做,真是烦人啊。希望自己今晚可以把页面给写好。努力

原文地址:https://www.cnblogs.com/wuhao1991/p/4369750.html