Java 常用API (第二部分)
常用api第二部分
Date 类
import java.util.Date;
时间原点: 1970-01-01 00:00:00(英国格林威治)
中国属于东八区, 会把时间增加 8 个小时: 1970-01-01 08:00:00
unix 时间戳是指离时间原点的毫秒值
使用 Date 类获取当前 unix 时间戳:
- // 获取当前unix时间戳
- import java.util.Date;
- public class Main {
- public static void main(String[] args){
- Date d = new Date();
- long i = d.getTime();
- System.out.println(i); //
- }
- }
把时间戳转换为日期时间:
- // 把时间戳转换为日期时间
- import java.util.Date;
- public class Main {
- public static void main(String[] args){
- Date d = new Date(1571926743797L);
- System.out.println(d); // Thu Oct 24 22:19:03 CST 2019
- }
- }
DateFormat 类
import java.text.DateFormat;
DateFormat 是一个抽象类
import java.text.SimpleDateFormat;
SimpleDateFormat 是实现的非抽象子类
将 Date 类型格式化为指定模式的字符串:
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Main {
- public static void main(String[] args) {
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String dateStr = sd.format(new Date());
- System.out.println(dateStr); // 2019-10-24 22:37:28
- }
- }
将字符串解析为 Date 类型:
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Main {
- public static void main(String[] args) throws ParseException { // 解析可能会发生异常
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date d = sdf.parse("2019-10-24 22:37:28");
- System.out.println(d); // Thu Oct 24 22:37:28 CST 2019
- }
- }
小练习: 计算一个人活了多少天 ?
步骤:
- 使用 Scanner 获取出生日期
- 使用 SimpleDateFormat 解析成 Date 类型
- 转化为毫秒值
- 使用当前 Date 毫秒值减去出生日期毫秒值
- 把毫秒值转换为单位: 天
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) throws ParseException {
- // 获取出生日期字符串
- Scanner s = new Scanner(System.in);
- s.useDelimiter("\n"); // 使用换行来判断用户输入完成
- String birthday = s.next();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- // 求毫秒差
- long currentTimestamp = new Date().getTime();
- long birthdayTimestamp = sdf.parse(birthday).getTime();
- long difference = currentTimestamp - birthdayTimestamp;
- // 转换为天
- int ret = (int) (difference / 1000 / 60 / 60 / 24);
- System.out.println(String.format("你活了多少天呢? %d", ret)); //
- }
- }
Calendar 类
import java.util.Calendar;
Calendar 是抽象类
常用成员方法:
返回当前的日期时间的Date对象
public Date getTime()
将给定的日期时间字段设置为给定值
public void set(int field, int value)
根据日历的规则, 为给定的日历字段添加或者减去指定的时间量(例如获取前N天的时间, 前N秒的日期时间, 非常方便) (正数为加, 负数为减)
public abstract void add(int field, int amount)
获取日历字段的值
public int get(int field)
demo:
- import java.util.Calendar;
- import java.util.Date;
- public class Main {
- public static void main(String[] args) {
- Calendar c = Calendar.getInstance(); // 直接获取对象, 多态写法
- // 获取当前时间
- Date currentTime = c.getTime();
- // 设置年份
- c.set(Calendar.YEAR, 9999);
- // 获取年份
- int year = c.get(Calendar.YEAR);
- System.out.println(year); // 9999
- // 更改月份
- c.add(Calendar.MONTH, 2);
- // 查看更改的月份
- System.out.println(c.get(Calendar.MONTH)); // 西方月份是 0-11, 中国是 1-12
- }
- }
System 类
java.lang.System
它提供了很多的静态方法, 使用类名直接调用
- 返回当前时间的unix时间戳 (可用于统计程序运行耗时)
- arraycopy
- public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
统计程序耗时:
- public class Main {
- public static void main(String[] args) throws InterruptedException {
- long startTime = System.currentTimeMillis();
- Thread.sleep(1000);
- long endTime = System.currentTimeMillis();
- System.out.println(endTime - startTime); //
- }
- }
arraycopy:
- import java.util.Arrays;
- public class Main {
- public static void main(String[] args) {
- int[] src = {1,2,3,4};
- int[] dest = {5,6,7,8};
- System.arraycopy(src, 0, dest,0, 3); // 替换3个, 元素少于3个报错
- System.out.println(Arrays.toString(dest)); // [1, 2, 3, 8]
- }
- }
StringBuilder 类
java.lang.StringBuilder
StringBuilder 是一个字符串缓冲区; 在内存里边始终是一个 byte[] 数组, 占用空间少, 操作效率高
StringBuilder 是可变对象, 用来高效拼接字符串
StringBuilder 可以支持链式操作, 实现链式操作的关键是返回实例本身
常用成员方法:
- append (可添加任意类型数据的字符串形式)
- toString (StringBuilder 和 String 可以互相转换)
字符串的高效拼接
- public class Main {
- public static void main(String[] args) {
- StringBuilder bu = new StringBuilder();
- // 链式调用
- bu.append("abc")
- .append(123)
- .append(true)
- .append(0.999)
- .append('a');
- System.out.println(bu.toString();
- }
- }
StringBuilder 和 String 之间的相互转换
- // StringBuilder 和 String 之间的相互转换
- public class Main {
- public static void main(String[] args) {
- StringBuilder bu = new StringBuilder("abc"); // 使用不同的构造方法
- System.out.println(bu.getClass()); // class java.lang.StringBuilder
- //
- String str = bu.toString();
- System.out.println(str.getClass()); // class java.lang.String
- }
- }
包装类
用类来包装基本类型, 方便操作基本类型数据
基本类型 | 对应的包装类(java.lang) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
成员方法:
valueOf() 装箱
intValue() 拆箱
demo:
- public class Main {
- public static void main(String[] args) {
- // 装箱
- // Integer ig = new Integer("123456");
- Integer ig = Integer.valueOf("123456");
- // 拆箱
- int i = ig.intValue();
- System.out.println(i); // 123456
- // 自动装箱, 拆箱
- Integer ig2 = 123456;
- int i2 = ig2;
- }
- }
ending ~
Java 常用API (第二部分)的更多相关文章
- Java 常用API(一)
目录 Java 常用API(一) 1. Scanner类 引用类型的一般使用步骤 Scanner的使用步骤 例题 2. 匿名对象 概述 匿名对象作为方法的参数 匿名对象作为方法的返回值 3. Rand ...
- Java 常用API(二)
目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...
- Java常用API(Math类)
Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...
- Java常用API(Arrays类)
Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...
- Java常用API(String类)
Java常用API(String类) 概述: java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例 1. ...
- Java常用API(ArrayList类)
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...
- Java常用API(Random类)
Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...
- Java常用API(Scanner类)
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
随机推荐
- SSH框架整合3——原生态SessionFactory
================================================web.xml============================================= ...
- 【大数据】安装关系型数据库MySQL 安装大数据处理框架Hadoop
作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3161 1.安装Mysql 使用命令 sudo apt-get ins ...
- Python10个图像处理工具
原文地址:https://cloud.tencent.com/developer/article/1498116 译者 | 小韩 来源 | towardsdatascience [磐创AI导读]:本篇 ...
- matlab学习笔记10_7数值计算类型和常用计算公式
一起来学matlab-matlab学习笔记11 数值数据类型以及特殊函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...
- cmake find_package说明
CMake中find_package功能演示 find_package可以被用来在系统中自动查找配置构建工程所需的程序库.在linux和unix类系统下这个命令尤其有用.CMake自带的模块文件里有大 ...
- vue前端项目中excel文件下载
模仿 https://github.com/PanJiaChen/vue-element-admin/ 的下载 创建文件夹vendor 创建文件 Export2Excel.js 内容: /* esli ...
- [LeetCode] 294. Flip Game II 翻转游戏 II
You are playing the following Flip Game with your friend: Given a string that contains only these tw ...
- spring boot @RequestBody数据传递及解析
@RequestBody需要接的参数是一个string化的json @RequestBody,要读取的数据在请求体里,所以要发post请求,还要将Content-Type设置为application/ ...
- js时间的一些处理
1.判断是否为同一天 function isSameFay(t) { return new Date(t).toDateString() === new Date().toDateString(); ...
- mysql 的sql_model模式
原文地址:https://blog.csdn.net/baidu_19338587/article/details/59483954 MySQL的sql_mode合理设置 sql_mode是个很容易被 ...