在Java编程语言中,日期类型的赋值是一个常见的操作,Java提供了多种方式来给日期类型赋值,包括使用SimpleDateFormat、Calendar类以及LocalDate类等,以下将详细介绍这些方法,并提供一些实际案例。

使用SimpleDateFormat类
SimpleDateFormat类是Java中处理日期和时间的常用类之一,它可以将日期字符串转换为Date对象,也可以将Date对象转换为日期字符串。
1 将日期字符串转换为Date对象
以下是一个将日期字符串转换为Date对象的示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
String dateString = "2021-12-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(dateString);
System.out.println(date);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2 将Date对象转换为日期字符串
以下是将Date对象转换为日期字符串的示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(date);
System.out.println(dateString);
}
}
使用Calendar类
Calendar类提供了更丰富的日期和时间操作功能,以下是如何使用Calendar类给日期赋值的示例:

1 创建Calendar对象并设置日期
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2021, Calendar.DECEMBER, 1);
System.out.println(calendar.getTime());
}
}
2 获取Calendar对象的年、月、日等属性
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2021, Calendar.DECEMBER, 1);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,所以加1
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + month + "-" + day);
}
}
使用LocalDate类
LocalDate类是Java 8引入的日期时间API的一部分,它提供了更简洁的日期操作方式。
1 创建LocalDate对象
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2021, 12, 1);
System.out.println(date);
}
}
2 获取LocalDate对象的年、月、日等属性
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2021, 12, 1);
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
System.out.println(year + "-" + month + "-" + day);
}
}
经验案例
假设我们需要将一个日期字符串“2021-12-01”转换为Date对象,并使用SimpleDateFormat格式化输出:
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
String dateString = "2021-12-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(dateString);
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
FAQs
Q1:如何将LocalDate对象转换为Date对象?
A1: 可以使用Date.from()方法将LocalDate对象转换为Date对象,以下是一个示例:

import java.time.LocalDate;
import java.util.Date;
public class LocalDateToDateExample {
public static void main(String[] args) {
LocalDate localDate = LocalDate.of(2021, 12, 1);
Date date = Date.from(localDate.atStartOfDay().toInstant());
System.out.println(date);
}
}
Q2:如何获取当前日期的星期几?
A2: 可以使用LocalDate类的getDayOfWeek()方法获取当前日期的星期几,以下是一个示例:
import java.time.LocalDate;
public class LocalDateDayOfWeekExample {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
String dayOfWeek = localDate.getDayOfWeek().toString();
System.out.println(dayOfWeek);
}
}
国内文献权威来源
《Java编程思想》(第4版),作者:埃克尔·贝克,《Java核心技术卷I:基础知识》(第10版),作者:Cay S. Horstmann,《Java开发手册》(第4版),作者:Herbert Schildt。


















