1、java.util.Date及其格式化
Date 类有两个附加的功能,一是表示年月日时分秒,二是对日期字符进行格式化和分析。但是由于API不符合国际规范。于是在JDK1.1中,Calendar类用于日期和时间域之间的转换;抽象类DateFormat对日期字符串进行格式化和分析,SimpleDateFormat类为DateFormat的实现类。
2、Java统计从1970年1月1日起的毫秒的数量表示日期。也就是说,例如,1970年1月2日,是在1月1日后的86,400,000毫秒。同样的,1969年12月31日是在1970年1月1日前86,400,000毫秒。
Java的Date类使用long类型纪录这些毫秒值.因为long是有符号整数,所以日期可以在1970年1月1日之前,也可以在这之后。Long类型表示的最大正值和最大负值可以轻松的表示290,000,000年的时间,这适合大多数人的时间要求。Date只是一个对long值的对象封装,它表现出的年月日的时间描述,只是它toString()方法提供的。
//打印出年,月,日,小时,分钟,秒还有时区
Date date1 = new Date();
System.out.println("-------------------date1--------------------\n"+date1);
//获得当前时间距离1970/1/1 0:0的毫秒差
long datel1 = date1.getTime();
//获得当前时间的另一个方法,为当前时间距离1970/1/1 0:0的毫秒差
long datel2 = System.currentTimeMillis();
//将时间以年,月,日,小时,分钟,秒还有时区形式打印出来
String dates1 = date1.toString();
System.out.println("-------------------datel1--------------------\n"+datel1);
System.out.println("-------------------datel2--------------------\n"+datel2);
System.out.println("-------------------dates1--------------------\n"+dates1);
可以得到结果是:
-------------------date1--------------------
Tue Mar 26 16:35:33 CST 2013
-------------------datel1--------------------
1364286933197
-------------------datel2--------------------
1364286933236
-------------------dates1--------------------
Tue Mar 26 16:35:33 CST 2013
3、SimpleDateFormat类是DateFormat的实现类。新建SimpleDateFormat对象的时候,可以规范时间的格式。然后通过format()方法将Date转化成String 。parse可以将日期字符串转换成Date类型
//定义时间格式,默认是13-3-26 下午2:16格式
SimpleDateFormat simpDatef1 = new SimpleDateFormat();
SimpleDateFormat simpDatef2 = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
SimpleDateFormat simpDatef3 = new SimpleDateFormat("MM-dd-yyyy");
String datef1 = simpDatef1.format(date1);
String datef2 = simpDatef2.format(date1);
String datef3 = simpDatef3.format(date1);
//可以利用parse方法将String转化成Date时间类型
String dates2 = "03-12-2013";
try {
Date date4 = simpDatef3.parse(dates2);
String dates3 = simpDatef3.format(date4);
System.out.println("-------------------date4--------------------\n"+date4);
System.out.println("-------------------dates3--------------------\n"+dates3);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("-------------------datef1--------------------\n"+datef1);
System.out.println("-------------------datef2--------------------\n"+datef2);
System.out.println("-------------------datef3--------------------\n"+datef3);
结果是:
-------------------date4--------------------
Tue Mar 12 00:00:00 CST 2013
-------------------dates3--------------------
03-12-2013
-------------------datef1--------------------
13-3-26 下午4:35
-------------------datef2--------------------
03-26-2013 04:35:33
-------------------datef3--------------------
03-26-2013
4、timestamp
在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型。
try {
String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
Date date4 = string2Date(sToDate);
Timestamp datet1 = string2Time(sToTimestamp);
System.out.println("---------------------------Date:\n"+date4.toString());//结果显示
System.out.println("---------------------------Timestamp:\n"+datet1.toString());//结果显示
}catch(Exception e) {
e.printStackTrace();
}
public final static java.sql.Date string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
//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");//设定格式
//将String通过parse转化成Date
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
//再将Date转换成timestamp
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
return dateTime;
}
结果是:
---------------------------Date:
2005-08-18
---------------------------Timestamp:
2005-08-18 14:21:12.123
5、小结
Date -> timestamp
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS");//设定格式
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
Date -> String
SimpleDateFormat simpDatef2 = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
String datef2 = simpDatef2.format(date1);
String -> Date
Date date4 = simpDatef3.parse(dates2);
分享到:
相关推荐
2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...
例如,Java中的`DateFormat`类就是一个静态工厂,可以根据需要返回不同的日期格式化对象。 - 简单工厂模式的优点在于它将产品创建的责任分割开,客户端只需要消费产品而无需关心如何创建。但它的缺点在于,当产品...
【Java课程设计-简单计算器】是一项面向计算机科学与技术专业学生的实践任务,旨在通过实现一个基础的计算功能软件,让学生巩固Java编程基础知识,提升面向对象编程能力,以及加强实际操作和创新思维。在这个项目中...
### 如何像计算机科学家一样思考:Java版本 #### 前言与背景 《像计算机科学家一样思考 Java》是一本由艾伦·唐尼撰写的关于如何通过学习Java编程语言来培养计算机科学思维的书籍。本书是第四版,首次出版于1999年...
总之,学习Java并非一蹴而就的过程,它需要时间和耐心。对于初学者来说,最重要的是树立正确的心态,即“动手,动脑,动嘴,静心”。只有坚持不懈地实践、思考并提问,才能在Java这条道路上越走越远。此外,还应当...
书中的内容包括Java的基础知识,如数据类型、运算符、控制流程以及面向对象编程的核心概念,如类、继承、多态和接口等。而对Java集合框架的章节则是特别推荐的,因为它不仅详细解释了集合框架的工作原理,还提供了...
7. Java API使用:书中还可能涉及各种内置库的使用,如IO流、NIO、日期时间API等,以及如何避免使用已废弃的方法。 通过阅读《Java解惑》,开发者不仅能解决当前遇到的问题,还能提前预防未来可能出现的陷阱,提高...
在这个名为“球球”的游戏中,我们可以推测它可能是一个简单的物理模拟游戏,比如“弹球”或者“2D碰撞”。在Java中实现这样的游戏,开发者可能使用了Java AWT或Swing库来创建图形用户界面(GUI),这两个库提供了...
11.1.2 Java时间和日期类型的Hibernate映射类型 11.1.3 Java大对象类型的Hibernate映射类型 11.1.4 JDK自带的个别Java类的Hibernate映射类型 11.1.5 使用Hibernate内置映射类型 11.2 客户化映射类型 ...
通过学习以上这些Java API,初学者可以逐步建立起对Java编程的基本理解,并能够编写出简单的Java应用程序。随着经验的积累,可以深入研究更多的高级特性和框架,提升自己的编程技能。记得实践是检验真理的唯一标准,...
6. 日期校验脚本编写:脚本校验日期需要使用Java的日期和时间API,如java.util.Date类或者java.time包下的类,编写程序对日期格式进行校验。 7. 字符串反转方法实现:字符串的反转是指将字符串中的字符顺序颠倒。...
- 实践编写简单Java程序,如打印名字,或找出特定条件的数字序列,锻炼基本编程能力。 - 实验报告要求填写完整,包括实验日期、选课序号,并对比Application和Applet的区别。 5. **思考题** - Java Application...
通过这些代码,你可以学习到Java的基本语法,类和对象的创建,文件I/O,数据转换,时间日期处理,以及可能的图形用户界面设计。这些都是Java编程的核心概念,对于理解和掌握这门语言至关重要。在深入学习时,建议...
这些题目可能涵盖了基础的Java编程概念,如变量、数据类型、控制结构(如if语句和循环)、函数的定义与调用,以及面向对象编程的基本概念(类、对象、封装、继承和多态)。 1. 在实验过程中,你需要编写代码来实现...
思考题部分则涉及字符类型转换和控制语句的使用,如`if...else if`、`if...else`和`while`循环,通过编写程序输出希腊字母表来实践这些概念。 通过这个实验,你将巩固Java开发的基础知识,提高对Java开发环境的熟练...
- Date/Time API:掌握日期时间处理的新API(自Java 8起引入),包括LocalDate、LocalTime等类。 - 输入输出流:学习文件读写的实现方式,包括File类、InputStream/OutputStream等。 #### 3.6 实验六:异常处理 ...
这个路线特别适合那些希望全面学习Java或者迅速准备求职的人,他们可以根据路线中的符号自定义学习路径。 路线特点: 1. **完整性**:覆盖了从基础到高级的所有Java知识点,包括大厂面试所需的技能。 2. **灵活性**...
6. 日历计算:第七题需要计算日期在一年中的位置,这可能涉及到日期类(如Java的`java.time.LocalDate`)的使用。 7. 数列求和:第八题是简单的累加,第九题则是阶乘计算,两者都涉及到循环和累乘的概念。 8. 数字...
在深入探讨Java注释的重要性与应用之前,我们先简要回顾一下给定文件的信息:标题为“ajava注释说明”,描述中强调了这是学习Java的必备文档,并鼓励大家积极学习Java。虽然部分文本似乎包含了乱码或非标准字符,但...