Java Date与Calendar日期处理详解

需积分: 9 1 下载量 161 浏览量 更新于2024-09-16 收藏 10KB TXT 举报
"这篇文档主要总结了Java中处理日期的Date和Calendar类,以及相关的方法。" 在Java编程中,日期处理是常见的任务之一。Java提供了`java.util.Date`和`java.util.Calendar`两个核心类来处理日期和时间。虽然`Date`类历史悠久,但在Java 1.1之后,它就被推荐使用`Calendar`类来替代,因为`Date`类中的很多方法已被标记为`deprecated`(不推荐使用)。 `Date`类主要用于表示特定的瞬间,精确到毫秒。然而,直接操作`Date`对象进行日期格式化并不直观,因此通常需要结合`java.text.SimpleDateFormat`类一起使用。`SimpleDateFormat`是一个具体的`DateFormat`类实例,用于格式化和解析日期或时间。例如: ```java Date d = new Date(); SimpleDateFormat df = new SimpleDateFormat("EE-MM-dd-yyyy"); System.out.println(df.format(d)); // 输出当前日期的星期、月、日和年 ``` `Calendar`类是一个抽象类,提供了比`Date`更强大的日期和时间操作功能。它可以设置和获取年、月、日、小时、分钟等各个字段。获取当前时间的`Calendar`实例可以这样写: ```java Calendar calendar = Calendar.getInstance(); ``` `DateFormat`类是`java.text`包下的一个接口,用于格式化日期和时间。它提供了几种预定义的样式,例如`SHORT`、`MEDIUM`、`LONG`和`FULL`,可以根据需要获取相应的日期或时间格式器。例如: ```java Date d = new Date(); DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); System.out.println(df1.format(d)); // 输出短格式日期和时间 DateFormat df2 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); System.out.println(df2.format(d)); // 输出中格式日期和时间 ``` `DateFormat`还支持根据特定地区的习惯来格式化日期,这需要通过`java.util.Locale`类实现。例如,要在美国地区格式化日期: ```java Date d = new Date(); Locale locale = new Locale("us", "US"); DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); System.out.println(df5.format(d)); // 输出美国地区的日期和时间格式 ``` Java中的`Date`和`Calendar`类是处理日期和时间的基础,而`SimpleDateFormat`和`DateFormat`则提供了丰富的日期格式化和解析功能。在实际开发中,我们还可以使用Java 8引入的`java.time`包,它提供了更现代、更易用的日期时间API,如`LocalDate`, `LocalTime`和`LocalDateTime`等,这些类提供了更清晰的API设计和更好的性能。
2012-04-06 上传
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link type="text/css" rel="stylesheet" href="css/calendar.css" > [removed][removed] [removed][removed] [removed][removed] <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link href="css/lyz.calendar.css" rel="stylesheet" type="text/css" /> [removed][removed] [removed][removed] <style> body { font-size: 12px; font-family: "微软雅黑" , "宋体" , "Arial Narrow"; } </style> [removed] $(function () { $("#txtBeginDate").calendar({ controlId: "divDate", // 弹出的日期控件ID,默认: $(this).attr("id") + "Calendar" speed: 200, // 三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000),默认:200 complement: true, // 是否显示日期或年空白处的前后月的补充,默认:true readonly: true, // 目标对象是否设为只读,默认:true upperLimit: new Date(), // 日期上限,默认:NaN(不限制) lowerLimit: new Date("2011/01/01"), // 日期下限,默认:NaN(不限制) callback: function () { // 点击选择日期后的回调函数 } }); $("#txtEndDate").calendar(); }); [removed] </head> <body> 开始时间:<input type="text" id="starttime" name="starttime" />
结束时间:<input type="text" id="endtime" name="endtime" /> <input id="txtBeginDate" type="text"/> <input id="txtEndDate" type="text" /> </body> </html>