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. leetcode146

    public class LRUCache { ; ; long sernumbers; long SerNumbers { get { if (sernumbers <= long.MaxVa ...

  2. leetcode438

    public class Solution {;public IList<int> FindAnagrams(string s, string p) { List<int> l ...

  3. Linux命令:pwd

    打印当前目录的完全路径. -L 打印路径包含符合路径 -P 打印路径不含符合路径. -LP,可能打印的不同,取决于你对进入当前目录的方式是通过符号链接进入,还是物理目录进入.如果是符号链接进入,则-L ...

  4. 使用wireshark以及filddler配合抓去手机端的TCP以及HTTP请求

    在测试手机客户端时,有时候需要查看网络请求状况.使用在IDE中查看log的方式,能够解决问题,但是会比较复杂.wireshark不能够做代理,而fiddler主要是抓HTTP请求,没有wireshar ...

  5. 我尼玛,二半夜的说中photo.src病毒了。

    大半夜手机预警,中病毒了,我感觉也没啥东西呀.一个破小网站,别人黑我干啥. 登上服务器去一看,我滴个乖乖,photo.src病毒.服务器里面显示是一个背景桌面应用程序, 打算直接从文件夹删除,但是正在 ...

  6. CSS 图像

    CSS 图像 <上一节下一节> 通过CSS可以控制图像的大小和对齐方式. 图像大小 虽然在HTML中,img标签有属性height.width设置高和宽,在工作中却使用得非常少,通常使用C ...

  7. EasyUI自动消失的弹框

    $.messager.show( { title : "系统提示", msg : "请选择提供商!!!" });

  8. 根据文件夹更改样本文件名小程序.py

    #按照文件名设置标签并将其插入文件名中import osimport shutil#获取目标文件夹的路径a= r'C:\Users\yy\Desktop\tianchi大赛\guangdong_rou ...

  9. Fedora 25 安装 Bugzilla

    最近领导要我们装一个Bugzulla,虽然我们项目已经有了JIRA(我就呵呵),不过我还是找些资料安装了,在此备忘. Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System ...

  10. 【读书笔记】深入应用C++11代码优化与工业级应用 读书笔记01

    第一章 使用C++11让程序更简洁.更现代 1.1  类型推导 1.1.1  auto类型推导 1.auto关键字的新意义 不同于python等动态类型语言的运行时进行变量类型的推导,隐式类型定义的类 ...