java常用类
Posted Gsan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常用类相关的知识,希望对你有一定的参考价值。
三、时间处理相关类
Date类:计算机世界把1970年1月1号定为基准时间,每个度量单位是毫秒(1秒的千分之一),用long类型的变量表示时间。
Date分配Date对象并初始化对象,以表示自从标准基准时间(称为“历元”(epoch),即1970年1月1日08:00:00GMT)以来的指定毫秒数。
示例:
package cn.tanjianjie.test;
import java.util.Date;
/**
* 测试Date类的常见用法
*/
public class TestDate {
public static void main(String[] args){
//获得当前电脑时刻
Date d=new Date();
System.out.println(d);
//获得毫秒数
Date d1=new Date(2000);
System.out.println(d1);
System.out.println(d.getTime());//返回自1970年1月1日08:00:00GMT以来此Date对象表示的毫秒数
Date d2=new Date();
System.out.println(d2.getTime());
System.out.println(d2.after(d));//d2>d=true;d2<d=false
Date d3=new Date(2020-1900,3,10);//表示2020年4月10日
System.out.println(d3);
}
}
运行结果:
DateFormat类的作用:
把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。
DateFormat是一个抽象类,一般使用它的子类SimpDateFormat类来实现。
示例:
package cn.tanjianjie.test;
import java.text.ParseException;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateFormat {
public static void main(String[] args) throws ParseException {
//把时间对象按照“格式字符串指定的格式”转换成相应的字符串
SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str=df.format(new Date(4000000));
System.out.println(str);
//把字符串对象按照“格式字符串指定的格式”转换成相应的时间对象
SimpleDateFormat df2= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date=df2.parse("2019-01-26 10:30:34");
System.out.println(date);
//输出今天是这个月中第几天
SimpleDateFormat df3= new SimpleDateFormat("D");
String str3=df3.format(new Date());
System.out.println(str3);
}
}
运行结果:
Calender日历类:
Calender类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示与计算。
GregorianCalender是Canlender的一个子类,提供了世界上大多数国家、地区使用的标准日历系统。
注意:月份的表示,一月为0,二月为1,以此类推十二月为11。
示例:
package cn.tanjianjie.test;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestCalendar {
public static void main(String[] args) {
//获得日期相关元素
Calendar calendar = new GregorianCalendar(2019, 1, 26, 10, 30, 34);
int year = calendar.get(calendar.YEAR);
int month = calendar.get(calendar.MONTH);
int day = calendar.get(calendar.DATE);//也可以使用DAY_OF_MONTH.
int weekday = calendar.get(calendar.DAY_OF_WEEK);//星期几。1-7.1表示星期天,2表示星期一,以此类推7表示星期六
System.out.println(year);
System.out.println(month);
System.out.println(day);
System.out.println(weekday);
//设置日期相关元素
Calendar c2 = new GregorianCalendar();
c2.set(Calendar.YEAR, 2019);
System.out.println(c2);
//日期的计算
Calendar c3 = new GregorianCalendar();
c3.add(Calendar.DAY_OF_WEEK, -2);//星期中往前两天
System.out.println(c3);
//日期对象和时间对象的转化
Date d4 = c3.getTime();
Calendar c4 = new GregorianCalendar();
c4.setTime(new Date());//时间对象转化成日期对象
printCalendar(c4);
}
public static void printCalendar(Calendar c){
//打印:2019年01月26日 11:23:29 周六
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int date=c.get(Calendar.DAY_OF_MONTH);
int dateweek=c.get(Calendar.DAY_OF_WEEK);
String dayweek2=dateweek==0?"日":dateweek+"";
int hour=c.get(Calendar.HOUR);
int minute=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
System.out.println(year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒"+" 周"+dayweek2);
}
}
运行结果:
可视化日历程序练习:
package cn.tanjianjie.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* 可视化日历程序
* @author Gsan
*/
public class TestCalendar2 {
public static void main(String[] args) throws ParseException {
System.out.println("格式为:2019-2-6");
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
SimpleDateFormat df=new SimpleDateFormat("yyy-MM-dd");
Date date=df.parse(str);//把字符串对象转换成时间对象
Calendar c=new GregorianCalendar();//获得日期元素
c.setTime(date);
System.out.println("日\\t一\\t二\\t三\\t四\\t五\\t六");
int day=c.get(Calendar.DAY_OF_MONTH);//获得日期
int days=c.getActualMaximum(Calendar.DATE);//取到最大一天,防止后面接下一月的最大天数
c.set(Calendar.DAY_OF_MONTH,1);
//日历前面的空格,方便接上一个月
for(int i=0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++){
System.out.print("\\t");
}
for(int i=1;i<=days;i++){//获得一个月的时间29就是29,28就是28,30就是30,31就是31
if(day==c.get(Calendar.DAY_OF_MONTH)){//当天加*号
System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\\t");
}else{
System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\\t");
}
if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
System.out.println();//换行
}
c.add(Calendar.DAY_OF_MONTH,1);//每打印一次就加一
}
}
}
运行结果:
以上是关于java常用类的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch代码片段,及工具类SearchEsUtil.java