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 ~