java常用实用类

Data类

Data类在java.util包中,它的无参构造方法创建的对象可以获取本地当前时间。用Data的构造方法Data(long time)创建的对象表示相对1970年1月1日0点(GMT)的时间。System类的静态方法currentTimeMillis()可获取系统当前时间,时间原点是从1970年1月1日0点到目前时刻走过的毫秒数。

package Data;

public class DemoData {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
    }
}
exclude patterns:
1598776767347

格式化时间

Data对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年、例如:

Stu Apr 30 18:00:45 CST 2020

我们可以使用DataFormat的子类SimpleDataFormat来实现日期的格式化。SimpleDataFormat有一个常用的构造方法:

public SimpleDataFormat(String pattern);

此构造方法可以调用参数pattern指定的格式创建一个对象sdf,然后调用“public String format(Data data)”方法格式化时间参数data指定的时间对象。format()方法将根据创建的sdf对象时所使用的参数pattern返回一个字符串对象formatTime:

String formatTime = sdf.format(new Data());

**注意:**参数pattern中应该含有“时间元字符”比如:yyyy-mm-dd,如果当前机器的时间是2020年8月30日,那sdf.format(new data)返回的字符串就是“2020-08-30”,此外如果pattern中的非时间元字符是ASCII字符集中的字符,必须用转义“ ‘ ”括起来,例如:pattern=" ‘time’:yyyy-MM-dd"。

输出指定格式的时间日期

import java.util.Date;

public class DemoData {
    public static void main(String[] args) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");
        // 调用DateFormat的实现类SimpleDateFormat中的format方法,
        Date date = new Date();
        String dateFormat = simpleDateFormat.format(date);
        System.out.println(date);
        System.out.println(dateFormat);

    }
}

结果:

Sun Aug 30 17:12:38 CST 2020
20200830171238

Calendar类

Calendar类也在java.util包中,它的静态方法getInstance()可以初始化一个日历对象,例如:

Calendar calendar = Calendar getInstance();

Calendar对象可以调用set方法把日历翻到任何一个时间:

public final void set(int year,int month,int data)
public final void set(int year,int month,int data,int hour,int mintue)
public final void set(int year,int month,int data,int hour,int mintue,int second)

设置年月日时分秒

//2020-08-30 00:00:00
Calendar ca = Calendar.getInstance();
ca.set(Calendar.YEAR,2020);
ca.set(Calendar.MONTH,7); 
ca.set(Calendar.DATE,29);
ca.set(Calendar.HOUR_OF_DAY,0);
ca.set(Calendar.MINUTE,0);
ca.set(Calendar.SECOND,0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(ca.getTime()));
2020-08-29 00:00:00

Calendar对象调用get(int field)方法可以获取有关年份的、月份、星期以及小时的信息,参数field的有效值由Calendar的静态常量指定,例如:

//获得年、月、日、时、分、秒、毫秒
calendar.get(Calendar.YEAR);
calendar.get(Calendar.MONTH);
calendar.get(Calendar.DATE);
calendar.get(Calendar.HOUR_OF_DAY);
calendar.get(Calendar.MINUTE);
calendar.get(Calendar.SECOND);
calendar.get(Calendar.MILLISECOND);
//当前时间是所在当前月的第几个星期(日历式的第几周)
calendar.get(Calendar.WEEK_OF_MONTH); 
 
//当前时间是所在当前年的第几个星期(日历式的第几周)
calendar.get(Calendar.WEEK_OF_YEAR)); 
 
//当前时间是所在当前月的第几个星期,以月份天数为标准,一个月的1号为第一周,8号为第二周
calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);

计算日期之间相隔的天数(常用)

实例:

public class setTime {
    public static void main(String[] args) {
        Calendar ca = Calendar.getInstance();
        ca.setTime(new Date());

        String year= String.valueOf(ca.get(Calendar.YEAR));
        String month= String.valueOf(ca.get(Calendar.MONTH)+1);
        String day= String.valueOf(ca.get(Calendar.DAY_OF_MONTH));
        String week= String.valueOf(ca.get(Calendar.DAY_OF_WEEK)-1);
        int hour = ca.get(Calendar.HOUR_OF_DAY);
        int minute = ca.get(Calendar.MINUTE);
        int second = ca.get(Calendar.SECOND);
        System.out.println("现在的时间为:");
        System.out.println(""+year+"年"+""+month+"月"+day+"日"+""+week+"星期");
        System.out.println(""+hour+"时"+""+minute+"分"+""+second+""+"秒");
        ca.set(2010,8,8);
        long timeStart = ca.getTimeInMillis();
        ca.set(2020,8,30);
        long timeEnd = ca.getTimeInMillis();
        long cha = (timeEnd-timeStart)/(1000*60*60*24);
        System.out.println("两个年代相隔"+cha+"天");

    }

结果:

现在的时间为:
20208300星期
191320秒
两个年代相隔3675
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页