import java.util.Date;java
api
数组
app
ui
// 获取当前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); // 1571926743797 } }
把时间戳转换为日期时间:spa
// 把时间戳转换为日期时间 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 } }
unix
code
import java.text.SimpleDateFormat;orm
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 } }
小练习: 计算一我的活了多少天 ?
步骤:
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)); // 8842 } }
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 } }
java.lang.System
它提供了不少的静态方法, 使用类名直接调用
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); // 1001 } }
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] } }
java.lang.StringBuilder
StringBuilder 是一个字符串缓冲区; 在内存里边始终是一个 byte[] 数组, 占用空间少, 操做效率高
StringBuilder 是可变对象, 用来高效拼接字符串
StringBuilder 能够支持链式操做, 实现链式操做的关键是返回实例自己
经常使用成员方法:
字符串的高效拼接
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 ~