day24
作者:互联网
今天又重新复习了一下一些常用API,尤其是Date类和Calendar类关于时间上的应用
常用API:
1.Math类:无构造方法,类的成员是static,所以可用类名直接调用
System.out.println(Math.abs(88));
public static int abs(int a)//返回绝对值
public static double ceil(double a)//返回大于等于参数的最小double值,等于一个整数
public static double floor(double a)//返回小于等于参数的最大double值,等于一个整数
public static int round(float a)//四舍五入返回最接近参数的int
public static int max(int a,int b)
public static int min(int a,int b)
public static double pow(double a,double b)//返回a的b次幂的值
public static double random()//返回值为double的正值,[0.0,1.0]
2.System类:无构造方法,类的成员是static,所以可用类名直接调用
public static void exit(int a)//终止当前运行的java虚拟机(程序停止运行),非0 表示异常终止
public static long currentTimeMillis()//返回当前时间(以毫秒为单位)
3.Object类:每个类都直接或间接继承该类
构造方法:public Object();
toString();//返回对象的字符串表示形式,所有子类重写该方法
equals();
Object类的两个方法都是在类中重写,自动生成
4.Arrays类,要导包 import java.util.Arrays;
public static String toString(int [] a)//返回指定数组的内容的字符串表示形式
public static void sort(int []a)//排序
5.基本类型包装类
5.1Integer类,不用导包
public static Integer valueOf(int i)//返回表示指定的int值的Integer的实例
public static Integer valueOf(String s)//返回一个保存指定值的Integer对象String
Integer i = Integer.valueOf(100);
Integer i = Integer.valueOf("100");//字符串只能是数字.
int->String
public static String valueOf(int i )
String s2=String.valueOf(number);
String->int
public static int parseInt(String s);
int x= Integer.parseInt(s);
将字符串转为int型数组
package T001;
public class demo {
public static void main(String[] args)
{
String s= "91 27 46 38 50";
String[] strArr=s.split("");//创建一个字符串数组,将字符串传入
int[] arr=new int[strArr.length];
for(int i=0;i<arr.length;i++)
{
arr[i] =Integer.parseInt(strArr[i]);
}
}
}
装箱:基本数据类型->包装类类型
拆箱:包装类类型->基本数据类型
Integer i = 100;//自动装箱
i+=200;//i+200 自动拆箱 ,i=i+200;自动装箱
使用包装类类型,做操作前判断是否为null,只要是对象,使用前必须进行不为null的判断
6.Date类,需要导包
6.1构造函数
public Date()//分配一个Date对象,并初始化,以便它代表塔它被分配的时间,精确到毫秒
public Date(long date)//分配一个Date对象,并将其初始化为表示从标准基准时间(1970年1月1日0时0分0秒)起指定的毫秒数
Date d1=new Date();System.out.println(d1);//输出当前时间
6.2Date类成员方法
public long getTime()//获取的时日期对象从标准时间到现在在的毫秒值
public void setTime(long time)//设置时间,等同于有参构造
6.3SimpleDateFormat类,要导包,text包下
y 年
M 月
d 日
H 时
m 分
s 秒
public SimpleDateFormat()//无参构造,使用默认模式和日期格式
public SimpleDateFormat(String pattern)//使用给定的模式和默认的日期格式
**格式化(Date->String)//可以把日期按自己想要的格式得到日期对象的字符串
public final String format(Date date):将日期格式化成日期/时间字符串
import java.util.Date;
import java.text.SimpleDateFormat;
public class demo {
public static void main(String[] args)
{
Date d=new Date();
System.out.println(d);//Mon Aug 02 20:04:55 CST 2021
SimpleDateFormat f = new SimpleDateFormat();
SimpleDateFormat f = new SimpleDateFormat("yyyy MM dd HH mm ss ");//2021 08 02 20 07 40
String s =f.format(d);
System.out.println(s);//2021/8/2 下午8:04
}
}
**解析(String->Date)
public Date parse(String source):从给定字符串开始解析文本以生成日期
import java.util.Date;
import java.text.SimpleDateFormat;
public class demo {
public static void main(String[] args)
{
String s="2021-08-02 11:11:11";
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//给的模式要与字符串匹配
Date d = f.parse(s);
System.out.println(d);//Mon Aug 02 11:11:11 CST 2021转换成标准模式
}
}
实例
1.定义一个日期类,将格式化和解析写成方法(静态)封装
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class DateUtils{
private DateUtils(){}//将构造私有化,外界就不能建立DateUtils的对象
public static String dateToString(Date date,String format)
{
SimpleDateFormat f = new SimpleDateFormat(format);
String s=f.format(date);
return s;
}
public static Date stringToDate(String s;String format) throws ParseException
{
SimpleDateFormat f = new SimpleDateFormat(format);
Date d = f.parse(s);
return d;
}
}
2.在测试类中调用类名.方法使用
import java.util.Date;
import java.text.ParseException;
public class DateDemo
{
public static void main(String[] args)
{
Date d = new Date();
String s = DateUtils.DateToString(d,"yyyy MM dd HH mm ss");
System.out.println(s);
String s1 ="2048-08-09 12:12:12";
Date dd = DateUtils.stringToDate(s,"yyyy-MM-dd HH:mm:ss");
System.out.println(dd);
}
}
7.Calendar类(日历类)要导包
7.1常用方法
public int get(int field)//返回给定的日历字段的值
public abstract void add(int field,int amount)//根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set(int year,int month,int date)//设置当前日历的年月日
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);//YEAR相当于在Calendar中用static修饰的成员变量
int month = c.get(Calendar.MONTH) + 1;//月份从0开始
int date = c.get(Calendar.DATE);//日
System.out.println(year +"年" + month + "月" + date +"日");//输入电脑中当前年月日
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,-5);//将当前电脑的年数-5
int year = c.get(Calendar.YEAR);//YEAR相当于在Calendar中用static修饰的成员变量
int month = c.get(Calendar.MONTH) + 1;//月份从0开始
int date = c.get(Calendar.DATE);//日
System.out.println(year +"年" + month + "月" + date +"日");
Calendar c = Calendar.getInstance();
c.set(2048,11,11);//月份从0开始,所以给11输出的是12月
int year = c.get(Calendar.YEAR);//YEAR相当于在Calendar中用static修饰的成员变量
int month = c.get(Calendar.MONTH) + 1;//月份从0开始
int date = c.get(Calendar.DATE);//日
System.out.println(year +"年" + month + "月" + date +"日");
例子:输入年份,输出该年2月的天数
import java.util.Calendar;
import java.util.Scanner;
public class asd {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);//创建对象
int year=sc.nextInt();//输入年份
int date=Date(year);//调用方法
System.out.println(date);//输出
}
public static int Date(int year)//建立方法输入年返回天数
{
Calendar c = Calendar.getInstance();//创建一个日历对象
c.set(year,2,1);//设置时间为该年的3月1日
c.add(Calendar.DATE, -1);//天数-1即为2月最后一天
int date = c.get(Calendar.DATE);//接受数据
return date;//返回
}
}
标签:String,int,day24,static,Date,Calendar,public 来源: https://www.cnblogs.com/yx111/p/15100429.html