- 浏览: 87899 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qintengfei:
不错,问题解决了。
ResultSet转换为List的方法 -
weichen:
看完之后挺管用,拿来试试人人网,大部分应用都能进,但是游戏中的 ...
HttpClient -
nggno1:
学习了~
Date类学习总结 -
chen88358323:
httpclient.getConnectionManager ...
HttpClient关于下载的资料收集 -
Eric_2007:
最后一条,有点过份!
一个女生看了会哭,男生会沉默的故事
1.计算某一月份的最大天数
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year); //year 为 int
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数
注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
2.Calendar和Date的转化
(1) Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
(2) Date转化为Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
3.把字符串转化为java.util.Date
方法一:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date dt=sdf.parse("2005-2-19");
System.out.print(sdf.format(dt)); //输出结果是:2005-2-19
方法二:
java.util.Date dt=null;
DateFormat df=DateFormat.getDateInstance();
dt=df.parse("2005-12-19");
System.out.println(dt); //输出结果为:Mon Dec 19 00:00:00 CST 2005
System.out.println(df.format(dt)); //输出结果为:2005-2-19
4.把字符串转化为java.sql.Date
字符串必须是"yyyy-mm-dd"格式,否则会抛出IllegalArgumentException异常
java.sql.Date sdt=java.sql.Date.valueOf("2005-9-6");
System.out.println(sdt); //输出结果为:2005-9-6
5.格式化输出日期时间 (这个用的比较多)
Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String time=df.format(date);
System.out.println(time);
需要注意的一点:SimpleDateFormat类格式化一个字符串时,可根据需要调用 format() 或 parse() 函数;只不过format()返回String类型,parse()返回java.util.Date类型
6.计算一年中的第几星期
(1)计算某一天是一年中的第几星期
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2)计算一年中的第几星期是几号
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal.getTime()));
输出:
2006-01-02
7.add()和roll()的用法(不太常用)
(1)add()方法
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.add(Calendar.DATE, -4);
Date date=cal.getTime();
System.out.println(df.format(date));
cal.add(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
输出:
2006-08-30
2006-09-03
(2)roll方法
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.roll(Calendar.DATE, -4);
date=cal.getTime();
System.out.println(df.format(date));
cal.roll(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
输出:
2006-09-29
2006-09-03
可见,roll()方法在本月内循环,一般使用add()方法;
8.计算两个任意时间中间的间隔天数(这个比较常用)
(1)传进Calendar对象
public int getIntervalDays(Calendar startday,Calendar endday){
if(startday.after(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));
}
(2)传进Date对象
public int getIntervalDays(Date startday,Date endday){
if(startday.after(endday)){
Date cal=startday;
startday=endday;
endday=cal;
}
long sl=startday.getTime();
long el=endday.getTime();
long ei=el-sl;
return (int)(ei/(1000*60*60*24));
}
(3)改进精确计算相隔天数的方法
public int getDaysBetween (Calendar d1, Calendar d2){
if (d1.after(d2)){
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_F_YEAR);//得到当年的实际天数
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
注意:通过上面的方法可以衍生出求任何时间,如要查出邮箱三周之内收到的邮件(得到当前系统时间-再得到三周前时间)用收件的时间去匹配 最好装化成 long去比较
如:1年前日期(注意毫秒的转换)
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
3周前的日期
Calendar cal3 = Calendar.getInstance();
cal3.add(cal3.DATE, -21);//取3周前的日期
String date = formatter.format(cal3.getTime());
9. String 和 Date ,Long 之间相互转换 (最常用)
字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
通常我们取时间跨度的时候,会substring出具体时间--long-比较
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);
java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");
long dvalue=d.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime1=formatter.format(d);
10. 通过时间求时间
年月周求日期
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
java.util.Date date2= formatter2.parse("2003-05 5 星期五");
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
String mydate2=formatter3.format(date2);
求是星期几
mydate= myFormatter.parse("2001-1-1");
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
11. java 和 具体的数据库结合
在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver 数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可
class Datetest{
*method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
*@param dateString 需要转换为timestamp的字符串
*@return dataTime timestamp
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 = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", 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;
}
*method 将字符串类型的日期转换为一个Date(java.sql.Date)
*@param dateString 需要转换为Date的字符串
*@return dataTime 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 static void main(String[] args){
Date da = new Date();
注意:这个地方da.getTime()得到的是一个long型的值
System.out.println(da.getTime());
由日期date转换为timestamp
第一种方法:使用new Timestamp(long)
Timestamp t = new Timestamp(new Date().getTime());
System.out.println(t);
第二种方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
Timestamp tt = new Timestamp(Calendar.getInstance().get(
Calendar.YEAR) - 1900, Calendar.getInstance().get(
Calendar.MONTH), Calendar.getInstance().get(
Calendar.DATE), Calendar.getInstance().get(
Calendar.HOUR), Calendar.getInstance().get(
Calendar.MINUTE), Calendar.getInstance().get(
Calendar.SECOND), 0);
System.out.println(tt);
try {
String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
Date date1 = string2Date(sToDate);
Timestamp date2 = string2Time(sToTimestamp);
System.out.println("Date:"+date1.toString());//结果显示
System.out.println("Timestamp:"+date2.toString());//结果显示
}catch(Exception e) {
e.printStackTrace();
}
}
}
一、Date的构造函数
1.1构造一个反映当时时间的Date实例
Date
public Date()
构造一个Date对象并对其进行初始化以反映当前时间。
1.2从一个长整型数据构造一个Date实例
Date
public Date(long date)
构造一个Date对象,并根据相对于GMT 1970年1月1日00:00:00的毫秒数对其进行初始化。
参数:
date - 相对于GMT 1970年1月1日00:00:00的毫秒数。
1.3从年月日时分秒构造一个Date实例
Date
public Date(int year,
int month,
int date)
public Date(int year,
int month,
int date,
int hrs,
int min)
public Date(int year,
int month,
int date,
int hrs,
int min,
int sec)
这三个构造函数均不推荐使用,在JDK 1.1版中,分别被Calendar.set(year + 1900, month, date)或GregorianCalendar(year + 1900, month, date)、Calendar.set(year + 1900, month, date, hrs, min)或 GregorianCalendar(year + 1900, month, date, hrs, min)、Calendar.set(year + 1900, month, date, hrs, min, sec)或GregorianCalendar(year + 1900, month, date, hrs, min, sec)代替。
发表评论
-
工作记录
2010-03-08 11:26 780sqlserver2000 安装报注册表挂起解决: ... -
利用ftp服务器实现文件上传下载
2009-08-12 12:09 1546利用ftp服务器实现文件 ... -
hibernate 多条件组合查询 之 sql 拼接
2009-08-10 15:38 1904public static void main(String[ ... -
工作记录
2009-06-16 18:13 7801 用PrintWriter对象写文件 StringB ... -
控件通知消息
2009-05-05 13:49 19062008年04月06日 星期日 00:09 控件通知消 ... -
Hibernate的检索策略
2009-05-04 13:54 752Hibernate的检索策略包括类级别检索策略和关联级别检索策 ... -
ResultSet转换为List的方法
2009-04-11 20:39 2549ResultSet转换为List的方法 private s ... -
文件批量上传
2009-03-23 17:06 1152执行类: /** * @author LX ... -
工作异常记录
2009-03-20 18:44 8351 hbm.xml配置问题 org.springframewo ... -
java日期(Date)、日历(Calendar)、日期格式(DateFormat)三类介绍
2009-02-16 13:45 2710语言的Calendar(日历),Date(日期), 和Date ... -
关于日期格式的一些记录
2009-02-16 13:43 897一、自定义月份: Date aDate = new Dat ... -
JAVA正则表达式4种常用功能
2009-02-12 10:31 919JAVA正则表达式4种常 ... -
list排序
2009-02-06 11:28 1058import java.text.Collator; ... -
java中删除一个非空目录的方法
2009-02-04 19:03 2948在java中没有直接删除非空目录的方法,所以要自己编写方法来删 ... -
List与数组实体的转换
2009-01-22 17:41 12581.List转换成为数组。(这里的List是实体是ArrayL ... -
HttpClient认证(3)
2009-01-15 10:59 1362清单 2. 在 HttpClient 中自定义 SSL 示例 ... -
HttpClient认证(2)
2009-01-15 10:47 2350Form-Based 认证方式在 J2EE 站点中更为常见。这 ... -
HttpClient认证(1)
2009-01-15 10:29 1462J2EE 站点认证简介 出于安全性的需要和用户授权管理的考虑 ... -
HttpClient 学习整理(4)
2009-01-15 10:05 15515. 提交XML格式参数 -
HttpClient 学习整理(3)
2009-01-15 10:04 963下面的代码片段演示如何处理页面的重定向 client.exe ...
相关推荐
Java Date 类学习总结 Java Date 类是 Java 语言中用于处理日期和时间的类,可以用来计算某一月份的最大天数、将字符串转化为日期、格式化输出日期时间等。本文将对 Java Date 类的常用方法进行总结。 1. 计算某一...
..Java_11Date 类的学习总结.docx
..Java_11Date 类的学习总结.pdf
Java-Date 类的学习总结 Date 类是 Java 语言中用于处理日期和时间的类别,在实际开发中经常会用到。下面是对 Date 类的学习总结,包括计算某一月份的最大天数、Calendar 和 Date 的转化、把字符串转化为 java.util...
..Java_11Date 类的学习总结 (2).docx
..Java_11Date 类的学习总结 (2).pdf
### Java Date 学习总结 在Java开发过程中,时间日期处理是常见的需求之一。本文将对`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`等类的使用进行详细总结,帮助读者更好地理解和掌握...
通过对以上两种转换方法的学习,我们可以看到从`java.util.Date`到`java.sql.Date`的转换并不复杂。选择哪种方法取决于具体的应用场景和需求。通常情况下,直接使用构造函数进行转换更为简洁高效;而通过字符串进行...
本资源摘要信息涵盖了 C++ 程序设计的基础知识点,包括日期类 Date 的设计和实现、圆类 Circle 的设计和实现,以及点类 Point 的设计和实现。 一、日期类 Date 的设计和实现 在 C++ 程序设计中,日期类 Date 是一...
06总结Date对象的方法.html
根据给定的实验报告内容,本篇将详细解析与“掌握DATE 类,掌握产生唯一数的方法”相关的知识点。 ### 1. DATE 类简介 在Java中,`java.util.Date` 类用于表示特定的时间点,精确到毫秒。该类有两个构造方法:一个...
在这个名为"flex 学习项目中总结的时间处理工具类DateUtils"的项目中,我们可能找到了一个针对Flex开发环境优化的日期处理工具。Flex是一种基于Adobe ActionScript的开源框架,主要用于构建富互联网应用(RIA)。 `...
总结,jQuery date_input 插件是网页开发中处理日期输入的得力助手,其易用性、灵活性和良好的兼容性使其在众多日期插件中脱颖而出。通过深入理解和熟练运用,你可以为用户提供更加便捷的日期选择体验。
- **日期和时间**:使用Date和SimpleDateFormat处理日期格式化,了解Calendar类的使用。 - **Java新特性**:学习Java 8及以上版本的新特性,如Lambda表达式、Stream API等。 **第五阶段:集合框架** - **集合概念**...
总结起来,MATLAB中的`date`函数是处理日期和时间数据的关键工具,它与其他日期函数协同工作,提供了强大而灵活的日期处理能力。无论是数据的格式化、转换还是计算,MATLAB都能提供高效且直观的解决方案。通过不断...
通过这个实验,我们学习了如何设计和实现一个 DateTime 类,该类继承自 Time 和 Date 类,以便于记录和运算日期和时间。我们还学习了如何考虑到日期和时间的运算规则,并使用对话框类来设置时间和日期。
### iFix 5.8 学习总结 在几周密集的学习过程中,通过网络资源与专业书籍,笔者针对 iFix 5.8 进行了深入的研究与实践,并在此分享一系列学习体会及实用技巧。鉴于当前关于 iFix 5.8 的资料相对稀缺,本文将重点...