博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE核心之一:Date类、Calendar类、Math类、枚举;
阅读量:6325 次
发布时间:2019-06-22

本文共 5387 字,大约阅读时间需要 17 分钟。

1.Date类

1) java.util.Date类用于封装日期及时间信息,一般仅用它显示某个日期,不对他作任何操作处理,作处理用Calendar类,计算方便。

2) Date 类本质上拥有一个long fastTime属性的包装类,提供了很多属性和方法用于快速获取年月日、时分秒。而fastTime就是时间戳。

1 import java.util.Date; 2  3 public class Test1 { 4     public static void main(String[] args) { 5         // 查看当前系统平台时区、环境等的时间 6         Date _date = new Date(); 7         System.out.println(_date); 8          9         //获取_date的时间戳,计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms) ;10         long _time = _date.getTime();11         System.out.println(_time);//输出1556540877266 ,(是该时间距离 历元 经过的毫秒数)12         13         //通过时间戳创建Date对象14         long ftime = 0;15         Date _date2 = new Date(ftime);16         System.out.println(_date2);//输出Thu Jan 01 08:00:00 CST 1970;17 18     }19 20 }

3) 日期的格式化,把Date对象格式化成特定的字符串;

1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3  4 public class test3 { 5     public static void main(String[] args) { 6         Date _date = new Date(); 7         System.out.println(_date);//输出Date对象时间 Mon Apr 29 21:29:38 CST 2019  8          9         //日期格式化->字符串10         SimpleDateFormat datef = new SimpleDateFormat();11         12         //这是日期格式化为字符串的默认的模式和语言环境  13         14         String dateStr = datef.format(_date);15         System.out.println(dateStr);//输出19-4-29 下午9:2816         17         //使用指定模式格式化 ; 例如格式化成:xxxx年xx月xx日  xx时xx分xx秒18         19         SimpleDateFormat datef2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");20         String dateStr2 = datef2.format(_date);21         System.out.println(dateStr2);//输出2019年04月29日 21时44分26秒    22         23         //还可以修改此模式   例如修改为yyyy-MM-dd模式24         datef2.applyPattern("yyyy-MM-dd");25         String dateStr3 = datef2.format(_date);26         System.out.println(dateStr3);//输出2019-04-2927         28 29     }30 31 }

 把特定的字符串转为Date对象

1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4  5 public class Test4 { 6     public static void main(String[] args) { 7         //将特定字符串转化为对象Date; 8         String str = "2019-04-29"; 9         10         SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 11         //把子串>>>Date12         13         try {14             Date _date = datef.parse(str);15             System.out.println(_date);16         } catch (ParseException e) {17         18             e.printStackTrace();19         }20             21     }22     23 }

 

4) 需求:构建一个未来3天的当前的时间;

 

1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3  4 public class Test2 { 5     public static void main(String[] args) { 6         //创建一个Date对象,表示当前平台的时间 7         Date _date = new Date(); 8         //输出当前时间 9         System.out.println(_date.toString());10         SimpleDateFormat datef1 = new SimpleDateFormat("yyyy年MM月dd日");11         String dateStr1 = datef1.format(_date);12         System.out.println(dateStr1);//输出2019年04月29日13     14         15         //需求:构建一个未来3天的当前的时间16         long ftime = 3*24*3600*1000 + _date.getTime();//加未来3天,3乘24小时17         Date _date2 = new Date(ftime);18         System.out.println(_date2.toString());//输出Date对象时间19         20         //转化为特定的字符串 xxxx年xx月xx日样式21         SimpleDateFormat datef = new SimpleDateFormat("yyyy年MM月dd日");22         String dateStr = datef.format(_date2);23         System.out.println(dateStr);//输出2019年05月02日24         25     }26 27 }

 2. Calendar类

1)java.util.Calendar类用于封装日历信息,其主作用在于其方法可以对时间分量进行运算。

通过Calendar的静态方法获取一个实例该方法会根据当前系统所在地区来自行决定时区,帮我们创建Calendar实例,这里要注意,实际上根据不同的地区,Calendar有若干个子类实现。而Calendar本身是抽象类,不能被实例化的。

2) 日历类所解决的根本问题是简化日期的计算,要想表示某个日期还应该使用Date类描述。Calendar是可以将其描述的时间转化为Date的,我们只需要调用其getTime()方法就可以获取描述的日期的Date对象了。

3) 通过日历类计算时间:为日历类设置时间,日历类设置时间使用通用方法set。set(int field,int value),field为时间分量,Calendar提供了相应的常量值,value为对应的值。

4) 只有月份从0开始:0为1月,以此类推,11为12月,其他时间是正常的从1开始。也可以使用Calendar的常量calendar.NOVEMBER……等。

 1 Calendar.DAY_OF_MONTH 月里边的天---号; 2 Calendar.DAY_OF_WEEK 星期里的天---星期几 3 Calendar.DAY_OF_YEAR 年里的天 

1 Calendar calendar=Calendar.getInstance();//构造出来表示当前时间的日历类2 Date now=calendar.getTime();//获取日历所描述的日期3 calendar.set(Calendar.YEAR, 2012);//设置日历表示2012年4 calendar.set(Calendar.DAY_OF_MONTH,15);//设置日历表示15号5 calendar.add(Calendar.DAY_OF_YEAR, 22);//想得到22天以后是哪天6 calendar.add(Calendar.DAY_OF_YEAR, -5);//5天以前是哪天7 calendar.add(Calendar.MONTH, 1);得到1个月后是哪天8 System.out.println(calendar.getTime());

6)获取当前日历表示的日期中的某个时间单位可以使用get方法。

1 int year=calendar.get(Calendar.YEAR);2 int month=calendar.get(Calendar.MONTH);3 int day=calendar.get(Calendar.DAY_OF_MONTH);4 System.out.println(year+"年"+(month+1)+"月"+day+"日");//month要处理

3.Math类

1)Math 类包含用于执行基本数学运算的方法。例如:随机数、平方、立方等等数学运算。

1 // 常用属性 2 System.out.println(Math.PI);//圆周率π的值 3  4 System.out.println(Math.abs(-10));//输出10;(绝对值 -10的绝对值是10) 5  6 System.out.println(Math.ceil(10.1));//输出10.0;ceil:返回比10.1大的最小整数>>> 向上取整  反之floor是向下取整; 7  8 System.out.println(Math.max(10, 20));//输出20;max取最大值,反之min取最小值; 9 10 System.out.println(Math.round(4.4)); 输出5;round: 四舍五入;11 12 System.out.println(Math.toDegrees(Math.PI/2));// 把弧度转化成角度13         14 System.out.println(Math.toRadians(180));// 把角度转化成弧度15         16 System.out.println(Math.sin(Math.toRadians(30)));// (C)sin(a)/cos(a)/tan(a)

 

4.枚举

1)枚举是由一组固定的常量组成的类型,自定义数据类型。

语法:

1 [修饰符] enum enumName{ 2   常量值1, 3   常量值2, 4   常量值3… 5    6   常量值n[;] 7 } 8  9 //案例:10 public enum Gender {11     男,12     女,13     保密;14 }

java中所有的枚举类型都继承于Enum类。可以把枚举类型看出一个类。

转载于:https://www.cnblogs.com/abcdjava/p/10792554.html

你可能感兴趣的文章
MWCS2017还能这么玩?带你来一场最炫酷的虚拟现实体验
查看>>
《机器人编程实战》一一3.2 伪代码和绘制RSVP流程图
查看>>
亚太地区将成为传感器应用最有潜力的市场
查看>>
DDoS攻击后果是损害客户信任和企业信誉
查看>>
中搜响应国家政策 积极加速云计算产业发展
查看>>
联手布局智能家居 华为和美的的“小心思”
查看>>
雅虎出售互联网业务后或迎来大举裁员
查看>>
氦气密封式硬盘助科学家存储超大黑洞数据
查看>>
索尼欲以车载业务和物联网带动半导体业绩增长
查看>>
城市如何“智慧”发展
查看>>
美新闻机构起诉FBI 要求其透露破解iPhone的细节
查看>>
夜间视频监控的注意事项有哪些
查看>>
2020年NFV市场规模将突破150亿美元大关
查看>>
雅虎开源可以提升流操作速度的DataSketches
查看>>
两款新型Linux恶意软件:一个挖加密货币,一个创建代理网络
查看>>
2015医疗变革回顾:大数据助力医疗精准高效
查看>>
黑暗力量再现,乌克兰最大机场网络遭到攻击
查看>>
智能家居如此火热 但你家地址可能保不住
查看>>
日本产业革新机构或提高夏普出资额至168亿元
查看>>
请告诉孩子,为什么必须要上大学!
查看>>