在Java中编程时间主要涉及到Java 8引入的新的日期与时间API,以及传统的java.util.Date和java.util.Calendar类。下面是一些基本的时间操作示例:
使用Java 8的新的日期与时间API
创建日期时间对象
```java
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
// 创建LocalDate对象
LocalDate date = LocalDate.of(2023, Month.OCTOBER, 1);
// 创建LocalTime对象
LocalTime time = LocalTime.of(14, 30, 0);
// 创建LocalDateTime对象
LocalDateTime dateTime = LocalDateTime.of(date, time);
System.out.println(dateTime); // 输出: 2023-10-01T14:30:00
}
}
```
修改日期时间对象
```java
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2023, Month.OCTOBER, 1);
LocalDate newDate = date.plusDays(5);
System.out.println(newDate); // 输出: 2023-10-06
}
}
```
日期时间的格式化与解析
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.of(2023, 10, 1, 14, 30, 0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化日期时间
String formattedDateTime = dateTime.format(formatter);
System.out.println(formattedDateTime); // 输出: 2023-10-01 14:30:00
// 解析日期时间
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-10-01 14:30:00", formatter);
System.out.println(parsedDateTime); // 输出: 2023-10-01T14:30:00
}
}
```
使用传统的java.util.Date和java.text.SimpleDateFormat
获取当前时间
```java
import java.util.Date;
import java.text.SimpleDateFormat;
public class TimeClock extends TimerTask {
@Override
public void run() {
Date currentTime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(currentTime);
System.out.println(formattedTime);
}
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimeClock(), 0, 1000); // 每隔一秒执行一次
}
}
```
日期时间的格式化与解析
```java
import java.util.Date;
import java.text.SimpleDateFormat;
public class Main {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datetime = sdf.format(date);
System.out.println(datetime); // 输出当前时间,格式为: 2024-12-31 12:34:56
Date parsedDate = sdf.parse("2024-12-31 12:34:56");
System.out.println(parsedDate); // 输出: Sun Dec 31 12:34:56 CST 2024
}
}
```
总结
Java 8及以上