JDK8 以后的 date
import java.sql.SQLOutput;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class A02_instantDemo {
public static void main(String[] args) {
// 1, 获取当前时间的Instant对象(标准时间)
Instant now = Instant.now();
System.out.println(now);
// 2, 根据(秒/毫秒/纳秒)获取Instant对象
Instant instant1 = Instant.ofEpochMilli(0L);
System.out.println(instant1); // 1970-01-01T00:00:00Z
Instant instant2 = Instant.ofEpochSecond(1L);
System.out.println(instant2); // 1970-01-01T00:00:01Z
Instant instant3 = Instant.ofEpochSecond(1L, 1000000000L);
System.out.println(instant3); // 1970-01-01T00:00:02Z(时间原点过去的两秒钟)
// 3. 指定时区
// atZone传入的是一个ZoneId 相当于获取了一个时区对象在把对象交给atZone方法
ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
System.out.println(time); //2024-04-18T19:49:34.518333800+08:00[Asia/Shanghai]
// 4,isXxx 判断
Instant instant4 = Instant.ofEpochMilli(0L);
Instant instant5 = Instant.ofEpochMilli(1000L);
// 5.用于时间的判断
// ifBefore判断调用者代表的时间是否在参数表示的时间前面
boolean res1 = instant4.isBefore(instant5);
System.out.println(res1);
// ifAfter判断调用者代表的时间是否在参数表示的时间后面
boolean res2 = instant4.isAfter(instant5);
System.out.println(res2);
// 6.Instant minusXxx(long millsToSubtract) 减少时间系列的方法
Instant instant6 = instant1.ofEpochMilli(3000L);
System.out.println(instant6); // 1970-01-01T00:00:03Z
Instant instant7 = instant6.minusSeconds(1);
System.out.println(instant7); // 1970-01-01T00:00:02Z
}
}
Integer大整数封装类的使用方法
整数封装类的输入(在底层是String类型用.XxxphraseXxx()来转换类型)
Java[HTML_REMOVED]的第一个练习
import java.util.ArrayList;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//1. 创建一个集合用来添加整数
ArrayList<Integer> list = new ArrayList<>();
//2. 键盘录入数据添加到集合中
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入一个整数");
String numStr = sc.nextLine();
int num = Integer.parseInt(numStr);
// 过滤异常数据
if (num < 1 || num > 100) {
System.out.println("当前数字不在1~~100的范围内,请重新输入");
continue;
}
// 添加到集合中
// 细节:
// num: 基本数据类型
// 集合里面的数据是Integer
// 在添加数据的时候触发了自动装箱
list.add(num);
// 统计集合中所有的数据和
int sum = getSum(list);
// 对sum进行判断
if (sum > 200) {
System.out.println("集合中所有的数据和已经满足要求");
break;
}
}
// 验证一下结论
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
private static int getSum(ArrayList<Integer> list) {
int sum = 0;
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
sum += num;
}
return sum;
}
}
第二个练习
public class Test2 {
public static void main(String[] args) {
// 1. 定义一个字符串
String str = "123456789";
// 习惯:先把异常数据进行过滤,剩下的来的就是正常数据
if (!str.matches("[1-9]\\d{0,9}")) {
// 错误的数据
System.out.println("数据格式有误");
} else {
System.out.println("数据格式正确");
//3. 定义一个变量表示最终的结果
int number = 0;
//4. 便利字符串得到里面的每一个字符
for (int i = 0; i < str.length(); i++) {
int c = str.charAt(i) - '0';
number = number * 10 + c;
}
System.out.println(number);
}
}
}
public class Test2 {
public static void main(String[] args) {
System.out.println(toBinaryString(6));
System.out.println(Integer.toBinaryString(6));
}
public static String toBinaryString(int number) {
StringBuilder sb = new StringBuilder();
while (number != 0) {
sb.append(number % 2);
number /= 2;
}
return sb.reverse().toString();
}
}