import java.security.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
public class Date {
public static int getIntervalDays(Calendar startday,Calendar endday){
//确保startday在endday之前
if(startday.before(endday)){ //判断
Calendar cal=startday;
startday=endday;
endday=cal;
}
//分别得到两个时间的毫秒数
long sl=startday.getTimeInMillis();
long el=endday.getTimeInMillis();
long ei=el-sl;
//根据毫秒数计算间隔天数
return (int)(ei/(1000*60*60*24));
}
//提高计算时间的精度
public int getDaysBetween (Calendar d1, Calendar d2){
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
public static String getSystemTime(){ //好方法
java.util.Date date21=new java.util.Date(); //一定要因对包
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("***"+df.format(date21));
return df.format(date21.getTime());
}
//明天日期
public static void getTomorrow(){ //很好的方法
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G E D F w W a E F");
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
System.out.println(mDate);
}
//将字符串类型的日期转换为一个Date
public final static java.sql.Date string2Date(String dateString)throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
return dateTime;
}
public final static java.sql.Timestamp string2Time(String dateString)throws java.text.ParseException {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
return dateTime;
}
public static void main(String args[]) throws Exception{
Date d = new Date();
System.out.println(d);
//System.out.println(String.format("%tr", new Date()));
//***************************************************
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime()); //获得当前时间
Calendar calendar1 = Calendar.getInstance();
java.util.Date date = calendar1.getTime();
System.out.println(date);
//***********************************************
Date date2=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
System.out.println(calendar.getTime());
//****************************************************
java.util.Date date3=new java.util.Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("***"+df.format(date3));
//******************************************************
Calendar cal3=Calendar.getInstance();
cal3.set(Calendar.YEAR, 2006);
cal3.set(Calendar.MONTH, 8);
cal3.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal3.get(Calendar.WEEK_OF_YEAR);
System.out.println(cal3.getTime());
//或者 cal.set(2004,1,6,5,40); 表示为2004年1月6号 5点40分
//********************************************************
SimpleDateFormat df4=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal4=Calendar.getInstance();
cal4.set(Calendar.YEAR, 2006);
cal4.set(Calendar.WEEK_OF_YEAR, 1);
cal4.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal4.getTime()));
//**************************************************
SimpleDateFormat df5=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal5=Calendar.getInstance();
cal5.set(Calendar.YEAR, 2006);
cal5.set(Calendar.MONTH, 8);
cal5.set(Calendar.DAY_OF_MONTH, 3);
cal5.add(Calendar.DATE, -4);
java.util.Date date5=cal5.getTime(), date6;
System.out.println(df5.format(date5));
cal5.add(Calendar.DATE, 4);
date6=cal5.getTime();
System.out.println(df5.format(date6));
// 2006-08-30
// 2006-09-03
//*****************************************************
System.out.println(getIntervalDays(cal4,cal5)); //计算出 两个日期之间的天数
//***********************************************************
System.out.println(getSystemTime());
getTomorrow();
//字符串 ——》 时间的转变
String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
java.util.Date date1 = string2Date(sToDate); //
System.out.println(date1);
java.sql.Timestamp date22 = string2Time(sToTimestamp); //
System.out.println(date22);
}
}
分享到:
相关推荐
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...
Java中的Date和Calendar类是处理日期和时间的核心工具。这两个类在Java编程中扮演着重要角色,特别是在处理日期计算、格式化以及与数据库交互时。 1. **java.util.Date** - **字符串转时间为Date对象**: 通过`...
在Java编程语言中,`Calendar`和`Date`是处理日期和时间的重要类。为了更好地理解和使用这两个类之间的转换方法,本文将详细介绍如何将`Calendar`对象转换为`Date`对象,以及如何将`Date`对象转换为`Calendar`对象。...
关于java中date和Calendar日期处理小结,包含一些常用方法等
### Date与Calendar详解:深入理解Java中的日期与时间操作 #### Date类的解析与应用 在Java编程中,`java.util.Date`类是用于表示特定时刻的类,它以自格林尼治时间(GMT)1970年1月1日午夜以来经过的毫秒数来存储...
031105_【第11章:Java常用类库】_日期操作类(Date、Calendar)笔记
Java中的时间类`Date`和`Calendar`是处理日期和时间的核心组件,它们在Java编程中扮演着重要的角色。在Java中,`Date`类主要用来表示特定的瞬间,精确到毫秒。而`Calendar`类则是一个抽象类,提供了比`Date`更灵活的...
在Java编程语言中,`Calendar`和`Date`类是用于处理日期和时间的核心类。它们在处理日期和时间操作时扮演着重要角色。这里我们将深入探讨这两个类以及它们之间的对比,同时展示如何计算上月某一天的日期以及获取指定...
在Java编程语言中,`Calendar`和`Date`类是处理日期和时间的核心组件。这两个类在处理日期、时间计算以及格式化等任务时扮演着关键角色。理解并熟练运用它们,对于提升Java开发能力至关重要。 `Date`类是Java早期...
Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...
《DateCalendar:一款可跨年跨月连续日期选择的C#自定义日历控件》 在软件开发中,日历控件是一个常见的组件,它用于用户选择日期或日期范围。然而,对于某些特定需求,如跨年、跨月以及连续日期选择,标准的日历...
根据提供的文件信息,本文将对Java中的`Calendar`类进行详细的解析,并且通过示例代码进一步阐述其在日期与时间处理中的应用。 ### Calendar日期代码详解 #### 1. Calendar 类简介 `java.util.Calendar` 类是 ...
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的用法和功能,对于理解并正确使用它们是Java开发者必备的知识点。 `Date`类在早期的Java版本中被广泛使用...
在Java编程语言中,`Calendar`类是处理日期和时间的核心工具之一,它提供了一种可以操作日期和时间字段(如年、月、日、时、分、秒等)的灵活方式。`Calendar`类是抽象的,因此我们通常通过其子类如`...
"js日期控件.txt"文件可能包含了关于如何使用Calendar-js的更多细节和示例代码,建议仔细阅读以深入了解。官方文档通常会提供详细的API参考、配置选项以及常见问题解答,是学习和使用该库的重要资源。 总的来说,...
在本主题中,我们关注的是一个特定的JS组件——"日期控件",通常称为"calendar"。这种控件允许用户通过图形用户界面方便地选择日期,常见于各种在线表单、预订系统或时间管理应用中。 "js 日期控件 calendar" 是一...
另一方面,`Calendar` 类是比 `Date` 更为复杂的日期和时间处理工具,提供了更多的功能,如日历字段操作、时区转换等。通过 `Calendar.getInstance()` 获取到的是一个 `Calendar` 实例,代表当前系统时间。调用 `...
### String、Calendar、Date间的相互转换 ...以上就是关于`String`、`Calendar`、`Date`之间的相互转换以及一些扩展的日期处理技巧。这些转换方法是进行日期处理的基础,对于开发人员来说非常实用。
在Java编程中,Date类是处理日期和时间的基础类,但在实际开发中,由于Date类本身的API设计并不十分友好,通常我们会使用工具类来简化日期的处理工作。本主题聚焦于一个名为"Date日期操作工具类"的实用工具,它提供...
在Java编程中,Date、String和Calendar是三个重要的日期时间处理类,它们之间相互转换的技巧是开发者必备的知识。理解并熟练掌握这三者之间的转换,对于处理日常的日期时间问题至关重要。 首先,我们来看`Date`类。...