欢迎访问宙启技术站
智能推送

Java函数实现日期和时间的操作

发布时间:2023-06-13 12:27:48

Java中提供了丰富的日期和时间的操作方法,包括格式化、解析、计算等功能。下面简单介绍一些常用的方法。

1. 格式化日期

Java中可以使用SimpleDateFormat类来格式化日期,例如:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatDemo {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        System.out.println(sdf1.format(date));
        System.out.println(sdf2.format(date));
    }
}

运行结果:

2022-02-22
2022年02月22日 14:30:52

2. 解析日期

Java中可以使用SimpleDateFormat类来解析日期,例如:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParseDemo {
    public static void main(String[] args) {
        String dateString = "2022-02-22";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = sdf.parse(dateString);
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

运行结果:

Tue Feb 22 00:00:00 CST 2022

3. 计算时间差

Java中可以使用Date类和Calendar类来计算时间差,例如:

import java.util.Calendar;
import java.util.Date;

public class DateDiffDemo {
    public static void main(String[] args) {
        Date date1 = new Date();
        Date date2 = new Date(System.currentTimeMillis() + 3600 * 1000);
        long diff = date2.getTime() - date1.getTime();
        System.out.println(diff / 1000 / 60 / 60 + "小时");
        
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(date1);
        Calendar calendar2 = Calendar.getInstance();
        calendar2.setTime(date2);
        int yearDiff = calendar2.get(Calendar.YEAR) - calendar1.get(Calendar.YEAR);
        int monthDiff = calendar2.get(Calendar.MONTH) - calendar1.get(Calendar.MONTH);
        int dayDiff = calendar2.get(Calendar.DAY_OF_MONTH) - calendar1.get(Calendar.DAY_OF_MONTH);
        System.out.println(yearDiff + "年" + monthDiff + "个月" + dayDiff + "天");
    }
}

运行结果:

1小时
0年0个月1天

4. 获取当前时间

Java中可以使用System.currentTimeMillis()方法获取当前时间毫秒数,例如:

public class CurrentTimeDemo {
    public static void main(String[] args) {
        long currentTimeMillis = System.currentTimeMillis();
        System.out.println(currentTimeMillis);
    }
}

运行结果:

1645513987125

5. 转换时区

Java中可以使用TimeZone类来转换时区,例如:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TimeZoneDemo {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        System.out.println("UTC时间:" + sdf.format(date));

        TimeZone timeZone = TimeZone.getTimeZone("GMT+8");
        Calendar calendar = Calendar.getInstance(timeZone);
        calendar.setTime(date);
        sdf.setTimeZone(timeZone);
        System.out.println("中国时间:" + sdf.format(calendar.getTime()));
    }
}

运行结果:

UTC时间:2022-02-22 06:35:11
中国时间:2022-02-22 14:35:11

以上是Java中常用的日期和时间操作方法,通过这些方法可以方便地对日期和时间进行处理。