import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateDemo {
public static void main( String[] args ) {
// TODO Auto-generated method stub
/**
* 下面四种都是string类型格式数据转换为 util.date, sql.date, sql.time,
* sql.Timestamp四种类型的数据实例
*
*/
// java.util.Date时间格式的转换,从字符串到Date类型转换,包含日期/时间数据
//SimpleDateFormat类完成数据格式化,设置格式化模板
SimpleDateFormat f_utilDate = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
String str = "2011-5-31 14:40:50";
try {
Date utilDate = f_utilDate.parse(str);
System.out.println(f_utilDate.format(utilDate));// 将一个date类型的数据按指定的pattern格式转换
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// java.sql.Date时间格式的转换, sql 中的date类型只有日期数据
SimpleDateFormat f_sqlDate = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20");
System.out.println(f_sqlDate.format(sqlDate));
// java.sql.Time sqltime时间格式的转换,包含时间数据
SimpleDateFormat f_sqlTime = new SimpleDateFormat("hh:mm:ss");
java.sql.Time sqltime = java.sql.Time.valueOf("13:44:53");
System.out.println(f_sqlTime.format(sqltime));
// java.sql.Timestamp时间格式的转换,跟sql TIMESTAMP时间类型对应
SimpleDateFormat f_timestamp = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss.SSS");
java.sql.Timestamp timestamp = java.sql.Timestamp
.valueOf("2010-08-20 14:06:27.186");
System.out.println(f_timestamp.format(timestamp));
/**
* 四种数据类型util.date, sql.date, sql.time, sql.Timestamp之间的转换
*/
System.out.println("四种数据类型之间的转换");
// java.util.Date 转换成 java.sql.Date 格式
try {
SimpleDateFormat DateFormate = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = DateFormate.parse("2011-5-31 14:40:50");
java.sql.Date sqlDate1 = new java.sql.Date(date1.getTime());
System.out.println("java.util.Date 转换成 java.sql.Date 格式:"
+ DateFormate.format(sqlDate1));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
// java.sql.Date 转换成 java.util.Date 格式
java.sql.Date sqlDate1 = java.sql.Date.valueOf("2005-12-12");
java.util.Date utilDate1 = new java.util.Date(sqlDate1.getTime());// getTime函数返回子1970年1-1凌晨到现今过去的毫秒数
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("java.sql.Date 转换成 java.util.Date 格式:"
+ format.format(utilDate1));
// java.util.Date转换java.sql.Timestamp
// java.util.Date转换java.sql.Time
System.out.println("sql time 时间数据"
+ new java.sql.Time(new java.util.Date().getTime())
.toString());
System.out.println("sql timestamp 日期/时间(包含毫秒)"
+ new java.sql.Timestamp(new java.util.Date().getTime())
.toString());
Timestamp timestamp1 = new Timestamp(System.currentTimeMillis());
// 我们可以使用DateFormat处理字符串来定义时间日期的格式
// 注:String都是先转换为java.util.Date,然后再转换成所需的格式
/**
* date 和calendar类型之间区别
*/
// date代表当前日期和时间
Date date = new Date();
System.out.println(date);
// calendar是一个新的日期时间类,本身是一个抽象类
/**
* Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar
* 是它的一个具体实现。Calendar.getInstance()中所获得的实例就是一个"GreogrianCalendar"对象。
*/
Calendar calendar = Calendar.getInstance();// 返回一个基于当前系统时区和地区的日历类
System.out.println(calendar.get(Calendar.MONTH) + 1);// 返回当前的月份,返回的月份数字和实际相比小1
// calendar.add(Calendar.DAY_OF_MONTH, 2);//对构建的calendar实例的一些属性字段增加或者删除
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));// 返回当天是全年第几天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));// 返回当天是这个月第几天
// calendar.setTime(new
// Date());用date实例数据设置calendar实例字段属性,calendar没有一个静态构造函数接受date实例
}
}
参考文献
关于calendar解释
关于date
date