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类、枚举;的更多相关文章

  1. 常用类(Date,Calendar,Math,枚举)

    1.日期时间类 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(以毫秒ms为单位). 如:计算机时间2019-04-29 14:14:00是该时间距离历元经过的毫 ...

  2. JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算

    JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习 ...

  3. Java常见的类——Number和Math类

    但我们使用数据时,我们一般使用内置数据类型,列如:byte,int,long,double等,但是在实际开发过程中,我们一般遇到的是需要使用对象,这时,我们就可以使用 Java 专门为每一个数据类型提 ...

  4. 日期时间类:Date,Calendar,计算类:Math

    日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2 ...

  5. Java基础 【Math、Random、System、BigInteger、BigDecimal、Date、Calendar等常用类的使用】

    学习的这几个类  是日常工作中经常要使用到的类 Math 类包含用于执行基本数序运算的方法,如初等指数.对数.平方根和 三角函数. 成员方法 1.public static int abs(int a ...

  6. Date、Calendar、DateFormat类

    Date类与Calendar类之间的转换 package date; import java.util.Calendar; import java.util.Date; public class Da ...

  7. Java常用类之【Math类、Random类、System类、Runtime类】

    一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...

  8. 构造方法,重载,static,math类(java基础知识七)

    1.构造方法概述和格式 * A:构造方法概述和作用     * 给对象的数据(属性)进行初始化 * B:构造方法格式特点     * a:方法名与类名相同(大小也要与类名一致)     * b:没有返 ...

  9. Java.util.Math类--数学相关的工具类

    Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double ...

随机推荐

  1. CPU与内存互联的架构演变

    随着计算机中CPU核数目的增加,传统的UMA(unifonn memory access)架构由于对关键硬件(如中央内存控制器)的竞争加剧出现了性能上的瓶颈,即扩展性不强.而NUMA架构则以其良好的可 ...

  2. 关于ES6兼容IE 问题记录之一

    这两天在做前端网页时,遇到一个问题,页面打开发生乱码,如下: 现象:360 浏览器,在急速模式下(即谷歌模式)是OK的显示,第一张图布局OK:在兼容模式下(即IE模式)是显示NG的,第二张图布局乱码 ...

  3. window.location.href 页面不跳转解决

    function login() { var userid = $("#username").val(); var userpwd = $("#pwd").va ...

  4. jQuery——检测滚动条是否到达底部

    一.jQuery检测浏览器window滚动条到达底部 jQuery获取位置和尺寸相关函数:$(document).height()    获取整个页面的高度:$(window).height()    ...

  5. Discuz!开发之HTML转Discuz代码(bbcode)函数html2bbcode()

    定义文件:\source\function\function_editor.php函数定义: function html2bbcode($text) { $text = strip_tags($tex ...

  6. php面试题五之nginx如何调用php和php-fpm的作用和工作原理

    nginx如何调用php 采用nginx+php作为webserver的架构模式,在现如今运用相当广泛.然而第一步需要实现的是如何让nginx正确的调用php.由于nginx调用php并不是如同调用一 ...

  7. vue的条件渲染和列表渲染介绍

    一.条件渲染 1.v-if语句 <div v-if="seen">hahahah</div> <!-- v-if插入或者删除元素的指令 --> ...

  8. [leetcode]364. Nested List Weight Sum II嵌套列表加权和II

    Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...

  9. [leetcode]33. Search in Rotated Sorted Array旋转过有序数组里找目标值

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  10. java 线程Thread 技术--volatile关键字

    java 语言中允许线程访问共享变量,为了保证共享变量能被准确和一致的更新,Java 语言提供了volatile 关键字,也就是我们所说的内存一致性: 问题抛出:(尝试去运行下面代码,以及将volat ...