java中的时间处理

时间:2022-05-18 23:49:21

import java.util.*;
import java.text.SimpleDateFormat;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;

public class TestDateTime
{
    public static void main(String[] argv)
    {
        long nCurrentTime = System.currentTimeMillis();
        java.util.Date utilDate = new java.util.Date(nCurrentTime);

        //以下是用于数据库操作的日期和时间类
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());  

        //java.util.Date和java.sql.Date的转换
        java.sql.Time sqlTime = new java.sql.Time(utilDate.getTime());
        java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(nCurrentTime);

        //Calendar用于获取指定的时间项(字段)
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(nCurrentTime);

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;   //注意:返回的月份是基于0的!
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);

        System.out.println("Current date is: " + year + "年" + month + "月" + day + "日");
        System.out.println("Current time is: " + hour + "时" + minute + "分" + second + "秒");

        //SimpleDateFormat用于格式化日期和时间
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String szDatetime1 = df.format(utilDate);
        System.out.println("Current datetime is: " + szDatetime1);

        //以下计算两个日期值之间相差的时间
        java.util.Date date2 = new java.util.Date(nCurrentTime - 24600 * 1000);

        long nMilliSeconds = utilDate.getTime() - date2.getTime();
        long nSeconds =  nMilliSeconds / 1000;  //把毫秒换算成秒
        double nDays = nSeconds / (24d * 60d * 60d);  //把秒换算成天

        String szDatetime2 = df.format(date2);
        System.out.println("Time between " + szDatetime1 + " and " + szDatetime2 + " is " + nSeconds + " seconds (" + nDays + " days)");
    }
}

程序运行结果:


C:/java>java   TestDateTime
Current date is: 2005年1月2日
Current time is: 15时55分45秒
Current datetime is: 2005-01-02 15:55:45
Time between 2005-01-02 15:55:45 and 2005-01-02 09:05:45 is 24600 seconds (0.2847222222222222 days)