Java学习(16)--System 类/Date 类/ Calendar类
System
(1)系统类 ,提供了一些有用的字段和方法
(2)成员方法
A:运行垃圾回收器
public static void gc()
B:退出 jvm
public static void exit(int status):
终止当前正在运行的 Java虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
C:获取当前时间的毫秒值
public static long currentTimeMillis()
D:数组复制
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
从指定源数组中复制一个数组, 复制从指定的位置开始, 到目标数组的指定位置结束。
示例:
int [] arr = { 11, 22, 33, 44, 55 };
int [] arr2 = { 6, 7, 8, 9, 10 };
System.arraycopy (arr, 1, arr2, 2, 2);
System. out .println(Arrays.toString (arr)); //[11, 22, 33, 44, 55]
System.out .println(Arrays.toString (arr2)); //[6, 7, 22, 33, 10]
Date/DateFormat
(1) Date 是日期类,可以精确到毫秒。
A:构造方法
Date() Date(long time)
B:成员方法
getTime() setTime(long time)
C:日期和毫秒值的相互转换
案例:你来到这个世界多少天了 ?
代码:
Scanner sc = newScanner(System. in ); // 键盘录入你的出生的年月日 System. out .println( " 请输入你的出生年月日 :" ); String line = sc.nextLine(); SimpleDateFormat sdf = newSimpleDateFormat( "yyyy-MM-dd" ); // 把该字符串转换为一个日期 Date d = sdf.parse(line); long myTime = d.getTime(); // 通过该日期得到一个毫秒值 long nowTime = System. currentTimeMillis (); // 获取当前时间的毫秒值 long time = nowTime - myTime; // 用 D-C得到一个毫秒值 long day = time / 1000 / 60 / 60 / 24; // 把 E的毫秒值转换为年 System. out .println( " 你来到这个世界: " + day + " 天" );
(1) DateFormat 针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,
所以使用其子类 SimpleDateFormat
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date -- String
format()
b:String -- Date
parse()
代码:
// Date -- String Date d = new Date(); // 创建日期对象 // SimpleDateFormat sdf = new SimpleDateFormat(); // 创建格式化对象 SimpleDateFormat sdf =newSimpleDateFormat( "yyyy 年 MM月dd 日 HH:mm:ss" ); //给定模式 // public final String format(Date date) String s = sdf.format(d); System. out .println(s); //String -- Date String str = "2008-08-08 12:12:12" ; //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配 SimpleDateFormat sdf2 = newSimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); Date dd = sdf2.parse(str); System. out .println(dd);
Date d = new Date(); // 创建日期对象 // SimpleDateFormat sdf = new SimpleDateFormat(); // 创建格式化对象 SimpleDateFormat sdf =newSimpleDateFormat( "yyyy 年 MM月dd 日 HH:mm:ss" ); //给定模式 // public final String format(Date date) String s = sdf.format(d); System. out .println(s); //String -- Date String str = "2008-08-08 12:12:12" ; //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配 SimpleDateFormat sdf2 = newSimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); Date dd = sdf2.parse(str); System. out .println(dd);
Calendar
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢 ?
Calendar rightNow = Calendar.getInstance();本质返回的是子类对象
(3)成员方法
A:根据日历字段得到对应的值
// 其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance(); // 子类对象
int year = rightNow.get(Calendar.YEAR); // 获取年
int month = rightNow.get(Calendar.MONTH); // 获取月
int date = rightNow.get(Calendar.DATE); // 获取日
B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值
public void add(int field,int amount):
根据给定的日历字段和对应的时间,来对当前的日历进行操作。
// 5 年后的 10 天前
c.add(Calendar.YEAR, 5);
c.add(Calendar.DATE, -10);
C:设置日历对象的年月日
public final void set(int year,int month,int date):
设置当前日历的年月日如: c.set(2011, 11, 1);
(4)案例:
计算任意一年的 2月份有多少天 ?
//键盘录入任意的年份 Scanner sc =newScanner(System.in); System.out.println(" 请输入年份:"); int year = sc.nextInt(); //设置日历对象的年月日 Calendar c = Calendar.getInstance(); c.set(year, 2, 1); // 其实是这一年的3月 1日,把时间往前推一天,就是2月的最后一天 System. out .println(c.get(Calendar.MONTH)); c.add(Calendar.DATE, -1); System. out .println(c.get(Calendar.MONTH)); //获取这一天输出即可 System. out .println(c.get(Calendar.DATE));
BigInteger
(1)可以让超过 Integer 范围内的数据进行运算
(2)构造方法A:BigInteger(String s)
(3)成员方法
public BigInteger add(BigInteger val): //加 public BigInteger subtract(BigInteger val): //减 public BigInteger multiply(BigInteger val): //乘 public BigInteger divide(BigInteger val): //除 public BigInteger[] divideAndRemainder(BigInteger val) ://返回商和余数的数组 |
BigDecimal
(1)浮点数据做运算, 会丢失精度。 所以,针对浮点数据的操作建议采用 BigDecimal。
(2)构造方法
A:BigDecimal(String s)
(3)成员方法:
public BigDecimal add(BigDecimal augend) //加
public BigDecimal subtract(BigDecimal subtrahend) //减
public BigDecimal multiply(BigDecimal multiplicand) //乘
public BigDecimal divide(BigDecimal divisor) //除
public BigDecimal divide(BigDecimal divisor,int scale,introundingMode) //商,几位小数
减
减 |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于 Django 的手机管理系统
前段时间和小组一起完成数据库作业,觉得收获挺多的,分享到博客来。 一、概述 打算通过设计数据库,然后结合 Python 框架Django,实现在网页上对数据库的增删改查(本例以手机的管理为例,不考虑订购功能),有普通用户界面和管理员用户界面,普通用户只能做简单的查看需求,管理员用户可以实现对数据库内容的实时修改。网站主体如下图: 二、设计数据库 根据业务需求,设计数据表,需要下列这些属性:手机型号、品牌、手机描述、出厂年份、价格、照片、产地。根据数据表设计原则,数据表设计需要满足基本的函数依赖和范式要求,因此我们将上述属性拆分为四张表格,并建立这些数据表之间的联系,相关的E-R 图如图所示:(由于 Django 在建立每一个数据表的时候就会有一个内建的 id 作为主键,因此在此就不需要另外再设置主键字段) 此数据库字段由于是我从 sqlite 迁移到 MySQL 中,Django 自动帮我再生成的字段,所以有些字段名和我在 Django 写的字段不一致,但数据表关系还是一致的。 在 Django 中设计数据表相关代码如下: from django.db import models...
- 下一篇
Java学习(17)--正则表达式
正则表达式(正确的规则表达式) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x。举例:'a'表示字符 a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [abc] a、b或c(简单类) [^abc] 任何字符,除了 a、b或c(否定) [a-zA-Z] a 到 z或 A 到 Z,两头的字母包括在内(范围) [0-9] 0到 9 的字符都包括 C:预定义字符类 . 任何字符。我就是 .字符本身,怎么表示呢 ?\. \d 数字: [0-9] 在Java中的正则表达式里,用\\表示 \w 单词字符: [a-zA-Z_0-9]在正则表达式里面组成单词的东西必须由a-zA-Z 和 0-9组成 D:边界匹配器 ^行的开头(必须以**开头) $行的结尾(必须以**结尾) \b 单词边界 :不是单词字符的地方 E:Greedy数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n次 X{n,} X,至少 n次 X{n,m} X,至少 n 次,但是不超过 m次...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境