JavaSE核心之一:Date类、Calendar类、Math类、枚举;
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:28 16 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-29 27 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 //把子串>>>Date 12 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
JavaSE核心之一:Date类、Calendar类、Math类、枚举;相关推荐
- java简单通讯录的实现02person类_Java中Math类的简单介绍
我想对于Math类大家一定很熟悉了,是Java提供的一个用来进行简单数学运算的工具类.对于Math类来说,常用的方法有: 加法 public static int addExact(int x, in ...
- Java中实用类:Date、Calendar、Math、Random、String、StringBuffer的用法
枚举 枚举类是一种特殊的类,里面的值全部都是静态常量,每一个枚举值都相当于一个本类对象, 只不过,调用对象的toString方法打印的是对象名.如: enum Color{BLUE,RED,YELLO ...
- Java常用类之【Math类、Random类、System类、Runtime类】
一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...
- java math四舍五入类,Java中Math类的几个四舍五入方法的区别
JAVA取整以及四舍五入 下面来介绍将小数值舍入为整数的几个方法:Math.ceil().Math.floor()和Math.round(). 这三个方法分别遵循下列舍入规则: Math.ceil() ...
- java的math类_Java之Math类使用小结
public classMain {public static voidmain(String[] args) {//TODO Auto-generated method stub System.ou ...
- Java菜鸟教程math类_Java Number Math 类
Java 中 int 和 Integer 的区别 1. int 是基本数据类型,int 变量存储的是数值.Integer 是引用类型,实际是一个对象,Integer 存储的是引用对象的地址. 2. I ...
- Math类,随机数Random类,System类,BigInteger类,BigDecimal类,Date类,Calendar类
Math类概述:Math 类涵盖了很多执行基本数学运算的方法, 是一个工具类. package com.sxt.mathdemo;/** Math类概述:Math 类涵盖了很多执行基本数学运算的方法, ...
- Java常用类System、Math和File类
Java 文章目录 Java 一.System:系统类 二.Math 数学类 三.File:文件类 一.System:系统类 System中包含一些有用的类字段和方法,不能够进行实例化 public ...
- math.hypot java_Java之Math类
Java之Math类# Java的Math类封装了很多与数学有关的属性和方法,后续遇到常用也会直接在这篇博客更新...### public static void t2() { System.out. ...
最新文章
- 此问题可能是由配置更改或安装另一个扩展导致的
- 多线程调用同一个方法,局部变量会共享吗
- python 读取数据出现UnicodeDecodeError:: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid contin
- 理想回应800倍高阶收EPB驻车芯片:不属实
- 单片机串口通信与同步异步通信
- 详细讲解委托和协议、看了这个我顿悟--很经典!
- 快速理解MapReduce
- Java常用的工具类库介绍
- String类的编码和解码问题
- 浏览器访问linux终端,使用浏览器访问 Linux 终端
- php获取银行logo,依据银行卡号获取银行信息php代码
- itools苹果录屏大师_iTools Pro 1.8.0.4 简单易用的苹果设备 iPhone/iPad 管理工具
- SteamVR Unity工具包(三):控制器交互
- 注册微信小程序账号 APPID的获取
- processing交互应用——双人对战游戏
- python 知乎 合并 pdf_有什么比较好的 PDF 分割、合并软件?
- SkyEye QA ——第一期
- 曼卡尔M1投影仪怎么样?和哈趣H1对比哪款更好用?
- Java小白常见异常|ArithmeticException算数异常的解决过程
- 针对小游戏的激励视频,如何通过数据分析提升广告收入