Math類
Math 類在 java.lang 包中,包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
常用方法
例如:
public class MathDemo {
public static void main(String[] args) {
System.out.println(Math.abs(-12.7));
System.out.println(Math.ceil(12.7));
System.out.println(Math.rint(12.4));
System.out.println(Math.random());
System.out.println("sin30 = " + Math.sin(Math.PI / 6));
// 計算30°的正弦值,參數是用弧度表示的角,即π的六分之一
System.out.println("cos30 = " + Math.cos(Math.PI / 6));
// 計算30°的餘弦值,這些計算三角函數的方法,其參數和返回值的類型都爲double
System.out.println("tan30 = " + Math.tan(Math.PI / 6));
// 計算30°的正切值
}
}
Date
Date 類表示日期和時間,裏面封裝了操作日期和時間的方法。Date 類經常用來獲取系統當前時間。
類 Date 中定義的未過時的構造方法:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
String strDate, strTime;
Date objDate = new Date();
System.out.println("今天的日期是:" + objDate);
long time = objDate.getTime();
System.out.println("自1970年1月1日起以毫秒爲單位的時間(GMT):" + time);
strDate = objDate.toString();
//提取 GMT 時間
strTime = strDate.substring(11, (strDate.length() - 4));
//按小時、分鐘和秒提取時間
strTime = "時間:" + strTime.substring(0, 8);
System.out.println(strTime);
//格式化時間
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(formatter.format(objDate));
}
}
Random
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
//隨機生成一個整數 int範圍
System.out.println(random.nextInt());
//生成 [0,n] 範圍的整數 設n=100
System.out.println(random.nextInt(100 + 1));
//生成 [0,n) 範圍的整數 設n=100
System.out.println(random.nextInt(100));
//生成 [m,n] 範圍的整數 設n=100 m=40
System.out.println((random.nextInt(100 - 40 + 1) + 40));
//隨機生成一個整數 long範圍
System.out.print(random.nextLong());
//生成[0,1.0)範圍的float型小數
System.out.println(random.nextFloat());
//生成[0,1.0)範圍的double型小數
System.out.println(random.nextDouble());
}
}
Calendar
在早期的 JDK 版本中,Date 類附有兩大功能:
- 允許用年、月、日、時、分、秒來解釋日期
- 允許對錶示日期的字符串進行格式化和句法分析
在 JDK1.1 中提供了類 Calendar 來完成第一種功能,類 DateFormat 來完成第二項功能。DateFormat 是 java.text 包中的一個類。與 Date 類有所不同的是,DateFormat 類可以接受用各種語言和不同習慣表示的日期字符串。
但是 Calendar 類是一個抽象類,它完成 Date 類與普通日期表示法之間的轉換,而我們更多的是使用 Calendar 類的子類 GregorianCalendar 類。它實現了世界上普遍使用的公曆系統。當然我們也可以繼承 Calendar 類,然後自己定義實現日曆方法。
GregorianCalendar 類的構造函數:
TimeZone 是 java.util 包中的一個類,其中封裝了有關時區的信息。每一個時區對應一組 ID。類 TimeZone 提供了一些方法完成時區與對應 ID 兩者之間的轉換。
例如:
//太平洋時區的 ID 爲 PST
TimeZone tz0 = TimeZone.getTimeZone(“PST”)
//getDefault()可以獲取主機所處時區的對象
TimeZone tz1 = TimeZone.getDefault()
Locale 只是一種機制,它用來標識一個特定的地理、政治或文化區域獲取一個 Locale 對象的構造方法:
//調用Locale類的構造方法
Locale l0 = new Locale(String language)
Locale l1 = new Locale(String language, String country)
Locale l2 = new Locale(String languge, String country, String variant)
//調用Locale類中定義的常量
Locale l1 = Locale.CHINA
例如:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarDemo {
public static void main(String[] args) {
System.out.println("完整顯示日期時間:");
// 字符串轉換日期格式
DateFormat fdate = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
String str = fdate.format(new Date());
System.out.println(str);
// 創建 Calendar 對象
Calendar calendar = Calendar.getInstance();
// 初始化 Calendar 對象,但並不必要,除非需要重置時間
calendar.setTime(new Date());
// 顯示年份
System.out.println(“年: “ + calendar.get(Calendar.YEAR));
// 顯示月份 (從0開始, 實際顯示要加一)
System.out.println(“月: “ + calendar.get(Calendar.MONTH));
// 當前分鐘數
System.out.println("分鐘: " + calendar.get(Calendar.MINUTE));
// 今年的第 N 天
System.out.println(“今年的第 “ + calendar.get(Calendar.DAY_OF_YEAR) + “天”);
// 本月第 N 天
System.out.println("本月的第 " + calendar.get(Calendar.DAY_OF_MONTH) + "天");
// 3小時以後
calendar.add(Calendar.HOUR_OF_DAY, 3);
System.out.println("三小時以後的時間: " + calendar.getTime());
// 格式化顯示
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
System.out.println(str);
// 重置 Calendar 顯示當前時間
calendar.setTime(new Date());
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
System.out.println(str);
// 創建一個 Calendar 用於比較時間
Calendar calendarNew = Calendar.getInstance();
// 設定爲 5 小時以前,後者大,顯示 -1
calendarNew.add(Calendar.HOUR, -5);
System.out.println("時間比較:" + calendarNew.compareTo(calendar));
// 設定7小時以後,前者大,顯示 1
calendarNew.add(Calendar.HOUR, +7);
System.out.println("時間比較:" + calendarNew.compareTo(calendar));
// 退回 2 小時,時間相同,顯示0
calendarNew.add(Calendar.HOUR, -2);
System.out.println("時間比較:" + calendarNew.compareTo(calendar));
// calendarNew創建時間點
System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendarNew.getTime()));
// calendar創建時間點
System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime()));
System.out.println("時間比較:" + calendarNew.compareTo(calendar));
}
}