Java中常用的“时间处理”实例(具体)

写在前面:

        Java中的时间处理涉及到的常用包为java.util.Calendar、java.text.SimpleDateFormat、java.util.Date,主要涉及Calendar 类、Date类、SimpleDateFormat类中方法,相关 日期和时间模式的表示格式 如下所示:

         特别注意:字母大小写表示的含义是不同。

  • yyyy:年
  • MM:月
  • dd:日
  • hh:12小时制,从1-12
  • K:和hh类似也表示12小时制,但是是从0-11
  • HH:24小时制,从0-24
  • k:和HH类似也表示24小时制,但是是从1-24
  • mm:分
  • ss:秒
  • S:毫秒
  • E:星期几
  • D:一年中第几天
  • F:一月中第几个星期(该月经过的总天数 / 7 得到)
  • W:一月中的第几星期(不涉及计算,根据实际情况输出)
  • w:一年中第几个星期
  • a:上午和下午标识(有a下午,无a上午)
  • z:表示时区

1.获取年份、月份、第几天等

(1)代码如下

//导入
import java.util.Calendar;
//创建类
public class TimeTest {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();//创建Calendar对象
        int year = cal.get(Calendar.YEAR);//年
        int month = cal.get(Calendar.MONTH) + 1 ;//月
        int day = cal.get(Calendar.DATE);//日
        int weekDay = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
        int monthDay = cal.get(Calendar.DAY_OF_MONTH);//一月中的第几天
        int yearDay = cal.get(Calendar.DAY_OF_YEAR);//一年的第几天
        System.out.println("当前时间(星期几、月、日、时间、形式、年): " + cal.getTime());
        System.out.print("年: " + year +" ");
        System.out.print("月: " + month + " ");
        System.out.println("日: " + day + " ");
        System.out.println("一周的第几天: " + weekDay);
        System.out.println("一月中的第几天: " + monthDay);
        System.out.println("一年的第几天: " + yearDay);
    }
}

(2)运行结果

2.获取当前时间

(1)代码如下

//导入
import java.text.SimpleDateFormat;
import java.util.Date;
//创建类
public class TimeTest {
    public static void main(String[] args) {
        Date date = new Date();// 创建Date对象 date
        SimpleDateFormat sdf = new SimpleDateFormat();//创建SimpleDateFormat对象
        //以下:yyyy表示年、MM表示月、dd表示日、HH表示小时、mm表示分钟、ss表示秒、a标记上/下午

        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// 日期形式表达式
        System.out.println("现在时间(年-月-日):" + sdf.format(date)); // 输出已经格式化的现在时间,传递对象date

        sdf.applyPattern("MM-dd-yyyy HH:mm:ss a");// 日期形式表达式
        System.out.println("现在时间(月-日-年):" + sdf.format(date)); // 输出已经格式化的现在时间,传递对象date

        sdf.applyPattern("dd-MM-yyyy HH:mm:ss a");// 日期形式表达式
        System.out.println("现在时间(日-月-年):" + sdf.format(date)); // 输出已经格式化的现在时间,传递对象date
    }
}

(2)运行结果

3.格式化输出时间

(1)代码如下

//导入
import java.text.SimpleDateFormat;
import java.util.Date;
//创建类
public class TimeTest {
    public static void main(String[] args) {
        Date date = new Date();// 创建Date对象 date

        // yyyy表示年、MM表示月、dd表示日、HH表示小时、mm表示分钟、ss表示秒、a标记上/下午
        //也可使 time = "MM-dd-yyyy HH:mm:ss" 或 "dd-MM-yyyy HH:mm:ss" 格式,只是位置不同
        String time = "yyyy-MM-dd HH:mm:ss";//定义字符串变量time记录格式化时间显示格式

        SimpleDateFormat sdf = new SimpleDateFormat(time);//创建SimpleDateFormat对象,传递time格式
        System.out.println("现在时间(年-月-日):" + sdf.format(date)); // 输出已经格式化的现在时间,传递对象date
    }
}

 (2)运行结果

4.将时间戳转换成时间

(1)代码如下

        需要使用到 SimpleDateFormat 类中的 format() 方法将时间戳转换成时间。

//导入
import java.text.SimpleDateFormat;
import java.util.Date;
//创建类
public class TimeTest {
    public static void main(String[] args) {
        Long timeStamp = System.currentTimeMillis(); //获取当前时间戳
        // yyyy表示年、MM表示月、dd表示日、HH表示小时、mm表示分钟、ss表示秒、a标记上/下午
        //形式一:
        String time1 = "yyyy-MM-dd HH:mm:ss";//定义字符串变量time1记录格式化时间显示格式
        SimpleDateFormat sdf1=new SimpleDateFormat(time1);//创建SimpleDateFormat对象sdf1,传递time1格式
        String sd = sdf1.format(new Date(Long.parseLong(String.valueOf(timeStamp))));//将时间戳转换成时间
        System.out.println("当前时间格式化结果:" + sd);

        //形式二:
        String time2 = "yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒";//定义字符串变量time2记录格式化时间显示格式
        SimpleDateFormat sdf2 = new SimpleDateFormat(time2); //创建SimpleDateFormat对象sdf2,传递time2格式
        String sd2 = sdf2.format(new Date(Long.parseLong(String.valueOf(timeStamp))));//将时间戳转换成时间
        System.out.println("当前时间格式化结果:" + sd2);

        //两种形式区别在于表示形式不同,方法相同
    }
}

 (2)运行结果

猜你喜欢

转载自blog.csdn.net/m0_54158068/article/details/125647797