JavaSE核心之一:Date类、Calendar类、Math类、枚举;
1.Date类
1) java.util.Date类用于封装日期及时间信息,一般仅用它显示某个日期,不对他作任何操作处理,作处理用Calendar类,计算方便。
2) Date 类本质上拥有一个long fastTime属性的包装类,提供了很多属性和方法用于快速获取年月日、时分秒。而fastTime就是时间戳。
import java.util.Date; public class Test1 {
public static void main(String[] args) {
// 查看当前系统平台时区、环境等的时间
Date _date = new Date();
System.out.println(_date); //获取_date的时间戳,计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms) ;
long _time = _date.getTime();
System.out.println(_time);//输出1556540877266 ,(是该时间距离 历元 经过的毫秒数) //通过时间戳创建Date对象
long ftime = 0;
Date _date2 = new Date(ftime);
System.out.println(_date2);//输出Thu Jan 01 08:00:00 CST 1970; } }
3) 日期的格式化,把Date对象格式化成特定的字符串;
import java.text.SimpleDateFormat;
import java.util.Date; public class test3 {
public static void main(String[] args) {
Date _date = new Date();
System.out.println(_date);//输出Date对象时间 Mon Apr 29 21:29:38 CST 2019 //日期格式化->字符串
SimpleDateFormat datef = new SimpleDateFormat(); //这是日期格式化为字符串的默认的模式和语言环境 String dateStr = datef.format(_date);
System.out.println(dateStr);//输出19-4-29 下午9:28 //使用指定模式格式化 ; 例如格式化成:xxxx年xx月xx日 xx时xx分xx秒 SimpleDateFormat datef2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String dateStr2 = datef2.format(_date);
System.out.println(dateStr2);//输出2019年04月29日 21时44分26秒 //还可以修改此模式 例如修改为yyyy-MM-dd模式
datef2.applyPattern("yyyy-MM-dd");
String dateStr3 = datef2.format(_date);
System.out.println(dateStr3);//输出2019-04-29 } }
把特定的字符串转为Date对象
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Test4 {
public static void main(String[] args) {
//将特定字符串转化为对象Date;
String str = "2019-04-29"; SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd");
//把子串>>>Date try {
Date _date = datef.parse(str);
System.out.println(_date);
} catch (ParseException e) { e.printStackTrace();
} } }
4) 需求:构建一个未来3天的当前的时间;
import java.text.SimpleDateFormat;
import java.util.Date; public class Test2 {
public static void main(String[] args) {
//创建一个Date对象,表示当前平台的时间
Date _date = new Date();
//输出当前时间
System.out.println(_date.toString());
SimpleDateFormat datef1 = new SimpleDateFormat("yyyy年MM月dd日");
String dateStr1 = datef1.format(_date);
System.out.println(dateStr1);//输出2019年04月29日 //需求:构建一个未来3天的当前的时间
long ftime = 3*24*3600*1000 + _date.getTime();//加未来3天,3乘24小时
Date _date2 = new Date(ftime);
System.out.println(_date2.toString());//输出Date对象时间 //转化为特定的字符串 xxxx年xx月xx日样式
SimpleDateFormat datef = new SimpleDateFormat("yyyy年MM月dd日");
String dateStr = datef.format(_date2);
System.out.println(dateStr);//输出2019年05月02日 } }
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……等。
Calendar.DAY_OF_MONTH 月里边的天---号; Calendar.DAY_OF_WEEK 星期里的天---星期几 Calendar.DAY_OF_YEAR 年里的天
Calendar calendar=Calendar.getInstance();//构造出来表示当前时间的日历类
Date now=calendar.getTime();//获取日历所描述的日期
calendar.set(Calendar.YEAR, 2012);//设置日历表示2012年
calendar.set(Calendar.DAY_OF_MONTH,15);//设置日历表示15号
calendar.add(Calendar.DAY_OF_YEAR, 22);//想得到22天以后是哪天
calendar.add(Calendar.DAY_OF_YEAR, -5);//5天以前是哪天
calendar.add(Calendar.MONTH, 1);得到1个月后是哪天
System.out.println(calendar.getTime());
6)获取当前日历表示的日期中的某个时间单位可以使用get方法。
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+(month+1)+"月"+day+"日");//month要处理
3.Math类
1)Math 类包含用于执行基本数学运算的方法。例如:随机数、平方、立方等等数学运算。
// 常用属性
System.out.println(Math.PI);//圆周率π的值 System.out.println(Math.abs(-10));//输出10;(绝对值 -10的绝对值是10) System.out.println(Math.ceil(10.1));//输出10.0;ceil:返回比10.1大的最小整数>>> 向上取整 反之floor是向下取整; System.out.println(Math.max(10, 20));//输出20;max取最大值,反之min取最小值; System.out.println(Math.round(4.4)); 输出5;round: 四舍五入; System.out.println(Math.toDegrees(Math.PI/2));// 把弧度转化成角度 System.out.println(Math.toRadians(180));// 把角度转化成弧度 System.out.println(Math.sin(Math.toRadians(30)));// (C)sin(a)/cos(a)/tan(a)
4.枚举
1)枚举是由一组固定的常量组成的类型,自定义数据类型。
语法:
[修饰符] enum enumName{
常量值1,
常量值2,
常量值3… 常量值n[;]
} //案例:
public enum Gender {
男,
女,
保密;
}
java中所有的枚举类型都继承于Enum类。可以把枚举类型看出一个类。
JavaSE核心之一:Date类、Calendar类、Math类、枚举;的更多相关文章
- 常用类(Date,Calendar,Math,枚举)
1.日期时间类 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(以毫秒ms为单位). 如:计算机时间2019-04-29 14:14:00是该时间距离历元经过的毫 ...
- JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算
JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习 ...
- Java常见的类——Number和Math类
但我们使用数据时,我们一般使用内置数据类型,列如:byte,int,long,double等,但是在实际开发过程中,我们一般遇到的是需要使用对象,这时,我们就可以使用 Java 专门为每一个数据类型提 ...
- 日期时间类:Date,Calendar,计算类:Math
日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2 ...
- Java基础 【Math、Random、System、BigInteger、BigDecimal、Date、Calendar等常用类的使用】
学习的这几个类 是日常工作中经常要使用到的类 Math 类包含用于执行基本数序运算的方法,如初等指数.对数.平方根和 三角函数. 成员方法 1.public static int abs(int a ...
- Date、Calendar、DateFormat类
Date类与Calendar类之间的转换 package date; import java.util.Calendar; import java.util.Date; public class Da ...
- Java常用类之【Math类、Random类、System类、Runtime类】
一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...
- 构造方法,重载,static,math类(java基础知识七)
1.构造方法概述和格式 * A:构造方法概述和作用 * 给对象的数据(属性)进行初始化 * B:构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返 ...
- Java.util.Math类--数学相关的工具类
Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double ...
随机推荐
- 30_react_router基本使用
项目结构: import React from 'react' import {render} from 'react-dom' import {BrowserRouter} from 'react- ...
- JAVA字符串类
一.字符串类String1.String是一个类,位于java.lang包中2.创建一个字符串对象的2种方式: String 变量名=“值”; String 对象名=new String(“值”);3 ...
- Django项目vue前端依赖框架过大,工程打开太卡的问题
前景提要:利用vue开发项目,由于依赖框架太大,导致pyCharm内存不够,项目打开太慢.步骤一:修改pyCharm的占用内存大小,按照下图操作.1.在应用程序中找到pyCharm,点击"显 ...
- FP数据库配置文件
- Java学习笔记(二十一):类型转换和instanceof关键字
基本数据类型转换: 自动类型转换:把大类型的数据赋值给大类型的变量(此时的大小指的是容量的范围) byte b = 12; //byte是一个字节 int i = b; //int是四个字节 强制类型 ...
- Lozad.js 简单使用
GayHub位置:https://github.com/ApoorvSaxena/lozad.js 导入: <script type="text/javascript" sr ...
- 分布式01-Dubbo基础背景
分布式01-Dubbo基础 1-分布式基础理论 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计算机无法完成 ...
- 213. House Robber II 首尾相同的偷窃问题
[抄题]: You are a professional robber planning to rob houses along a street. Each house has a certain ...
- java_23 File类
1.File类定义: 文件和目录路径的抽象表达形式,java中将路径或者文件封装成File对象. 2.File类的静态成员变量(pathSeparator 分隔符,字符串 separat ...
- MySQL往表里插入千条数据 存储过程
工作中遇到的问题,先记录一下,方便以后查看 存在两张表,user表和friend表 user表部分字段,如上图 friend表部分字段,如上图 往friend表插入千条数据,friend表中的user ...