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. 使用jQuery+huandlebars遍历if判断不足引用helper

    兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html) & ...

  2. 关于 web 页面 占满全屏

    页面一般可以分成三部分,头部,底部,中间内容部分. 一般不用考虑中间高度部分,因为可以靠内容撑开,然后让底部到达底部.但是当中间内容太少时,底部就会顶不到底部. 方法1.中间部分给一个最小高度(min ...

  3. 关于extern的使用

    学的时候不认真总结,用的时候就一堆bug. 上回也是调extern调了半天,今天又犯老毛病. data 比如说是要用到的的在main函数中不断刷新的量.那么这个unsigned int data 要写 ...

  4. UGUI中Text的换行

    通过代码中的\n可以直接执行换行效果,但是我们在平常的工作中一般都是读表,既在Inspector面板中的Text组件中输入同样的内容就达不到换行效果: 其实unity把\n转变成了\\n,我们只需要变 ...

  5. Curator场景应用

    分布式锁功能: 在分布式场景中,我们为了保证数据的一致性,经常在程序运行的某一个点,需要进行同步操作,(java提供synchronized或者Reentrantlock实现), 使用curator基 ...

  6. scrapy -->CrawlSpider 介绍

    scrapy -->CrawlSpider 介绍 1.首先,通过crawl 模板新建爬虫: scrapy genspider -t crawl lagou www.lagou.com 创建出来的 ...

  7. CentOS7中firewall防火墙详解和配置,.xml服务配置详解

    修改防火墙配置文件之前,需要对之前防火墙做好备份 重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙 1. firewall-cmd --state ...

  8. Quartz.Net进阶之一:初识Job作业和触发器

        前几天写了一篇有关Quartz.Net入门的文章,大家感觉不过瘾,想让我在写一些比较深入的文章.其实这个东西,我也是刚入门,我也想继续深入了解一下,所以就努力看了一些资料,然后自己再整理和翻译 ...

  9. MySQL开发——【多表关系、引擎、外键、三范式】

    多表关系 一对一关系 一对多或多对一关系 多对多关系 MySQL引擎 所谓的MySQL引擎就是数据的存储方式,常用的数据库引擎有以下几种: Myisam与InnoDB引擎之间的区别(面试) ①批量插入 ...

  10. AJAX心得

    持续补充... AJAX的核心是异步对象XMLHttpRequest对象,一个具有程序接口的JavaScript对象,能够使用超文本传输协议(HTTP)链接一个服务器. 这是一段标准的AJAX执行代码 ...