先是写一个工具类,完成由Date-->String,String-->Date,Date-->Calendar,Calendar-->Date
的转化,并在此基础上衍生出Calendar-->String,String-->Calendar。至此便可以完成一般的对日期的操作(由String类型的传进去交由Calendar处理)然后再输出显示按照预期想要的格式的处理后的日期
(一)DateUtils.java
package cn.ldc.baseskill.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @author : Tony
* @createTime :2011-4-6 下午08:37:08
* @class_name :DateUtils.java
*/
public class DateUtils {
//Date -->String
private static String dateToString(Date date,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
//String --->Date
private static Date stringToDate(String source,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
return sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//Date-->Calendar
private static Calendar dateToCalendar(Date date){
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
return cal;
}
//Calendar-->Date
private static Date calendarToDate(Calendar cal){
return cal.getTime();
}
//Calendar --> String 用於計算結束后的顯示
static String calendarToString(Calendar cal,String format){
return dateToString(calendarToDate(cal),format);
}
//String -->Calendar 用於計算
static Calendar stringToCalendar(String source,String format){
return dateToCalendar(stringToDate(source,format));
}
}
在此基础上完成几个小操作
//根據任意一個日期得到它所在的星期
static int getWeek(String source,String format) throws ParseException{
Calendar cal = DateUtils.stringToCalendar(source, format);
return cal.get(Calendar.DAY_OF_WEEK)-1;
}
//今天N天以後的那一天的日期
static String getDay(int n){
Calendar cal = Calendar.getInstance();
return DateUtils.calendarToString(cal, "yyyy-MM-dd");
}
//获得距离指定日期n天前或后的那一天的日期
static String getSomeDay(String source,String format,int amount){
Calendar cal = DateUtils.stringToCalendar(source, format);
cal.add(Calendar.DATE, amount);
return DateUtils.calendarToString(cal, format);
}
调用以上三个函数输出结果:
3
2011-04-06
2010-04-04
分享到:
相关推荐
总的来说,Java中的日期处理涉及对`Date`和`Calendar`对象的操作,它们提供了丰富的功能,如获取、设置日期和时间字段,以及比较和格式化日期。在实际编程中,理解并熟练运用这些类和方法对于处理日期相关的逻辑至关...
"JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...
本文将详细介绍几种常用的Java日期时间获取方法,包括如何获取完整日期时间、仅获取时间部分(时分秒)、获取日期部分以及如何获取时间戳。此外,我们还将探讨如何使用自定义格式来获取日期时间。 #### 二、基本...
关于java中date和Calendar日期处理小结,包含一些常用方法等
这对于开发涉及日期处理的应用程序非常实用。本文将详细介绍如何使用Java内置类如`SimpleDateFormat`、`Calendar`等来进行这些操作。 #### 二、关键知识点解析 ##### 2.1 计算年龄 计算年龄通常涉及到从当前日期...
在Java编程中,日期处理是常见的任务之一,无论是记录日志、数据分析还是业务逻辑,都需要对日期进行比较和计算。本篇文章将详细讲解如何在Java中进行日期的比较和计算,主要包括日期的大小比较、计算两个日期之间的...
Java8 LocalDateTime 时间日期操作小结 Java8 LocalDateTime 时间日期操作小结是 Java8 中提供的一种新的时间处理方式,它提供了 LocalDateTime 和 LocalDate 两个类来处理日期和时间。LocalDateTime 可以很方便的...
以下是对Java时间处理的详细说明: 1. 计算某一月份的最大天数: 使用`Calendar`类,通过`getActualMaximum()`方法可以获取指定月份的最大天数。需要注意的是,`Calendar`对象中,一月被表示为0,所以设置月份时,...
**小结** 以上代码示例展示了Java中日期格式化的一些基本用法。对于初学者来说,掌握这些基础是非常重要的。通过这些方法,可以方便地进行日期的转换和格式化,以便更好地处理和展示日期数据。此外,还可以进一步...
实验5的Java常用类主要涵盖了Java...通过实验5的学习,学生可以深入理解Java中字符串处理、数据类型转换、输入输出以及基本的数学计算等关键概念,这些都是Java编程的基础,对于后续学习Java的其他高级特性至关重要。
"Java高级面试题小结" 本文主要介绍了Java高级面试题,包括对部分名词的释义及代码解析,具有一定收藏价值,需要的朋友可以参考下。以下是对标题和描述中所说的知识点的详细解释: 一、可变参数 可变参数允许调用...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
学生提问:Java为什么要对这些数据进行缓存呢? 67 3.7.6 逻辑运算符 67 3.7.7 三目运算符 68 3.7.8 运算符的结合性和优先级 69 3.8 本章小结 70 本章练习 70 第4章 流程控制和数组 71 4.1 顺序结构 72 4.2 ...
Java 中 Calendar 类的用法小结 Calendar 类是 Java 语言中一个基本而重要的组成部分,用于处理日期和时间。下面是 Calendar 类的用法小结: 一、取得当前时间 使用 Calendar.getInstance() 方法可以取得当前时间...
#### 小结 以上介绍了两种在Java中获取本地系统时间的方法。通过`Calendar`类可以直接获取各种日期时间组件,而通过`SimpleDateFormat`类则可以方便地将日期时间对象转换为字符串。根据实际应用场景选择合适的方法...
### 小结 通过上述示例可以看出,使用`Calendar`类获取时间是非常灵活和方便的。无论是需要获取精确到秒的时间戳还是只需要年月日这样的基本信息,都可以轻松实现。这对于日常开发中处理日期相关的功能非常有帮助。...
1.3 小结 1.4 思考题 第2章 Java对象持久化技术概述 2.1 直接通过JDBC API来持久化实体域对象 2.2 ORM简介 2.2.1 对象-关系映射的概念 2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 ...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
- **小结** - Java 的 I/O 包提供了丰富的类来处理文件和流,包括基本的字节流、字符流、文件流、缓冲流等。 **1.4 Java中的一些常用词汇** - **术语解释** - 如继承、封装、多态等。 **1.5 J2SE学习中的30个...