String Date Calendar之间的转换

25 篇文章 1 订阅
21 篇文章 0 订阅

来源:http://strongboy789.iteye.com/blog/1551959


1.Calendar 转化 String

Calendar calendat = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(calendar.getTime());

 

2.String 转化Calendar

String str="2012-5-27";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

 

3.Date 转化String

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

String dateStr=sdf.format(new Date());

 

4.String 转化Date

String str="2012-5-27";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Date date= sdf.parse(str);

 

5.Date 转化Calendar

Calendar calendar = Calendar.getInstance();

calendar.setTime(new java.util.Date());

 

6.Calendar转化Date

Calendar calendar = Calendar.getInstance();

java.util.Date date =calendar.getTime();

 

7.String 转成 Timestamp

Timestamp ts = Timestamp.valueOf("2012-1-14 08:11:00");

 

8.Date 转 TimeStamp

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = df.format(new Date());

Timestamp ts = Timestamp.valueOf(time);






--------------------------------------------------


http://blog.sina.com.cn/s/blog_5e2d15540100z8y7.html

一.获取系统当前时间:
1.System.out.println(new Timestamp(new java.util.Date().getTime));    //包含时分秒
2.System.out.println(new java.sql.Date(new java.util.Date().getTime));    //不包含时分秒
3.通过格式化类获取任意格式的时间
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS"); String time = sdf.format(Calendar.getInstance().getTime()); System.out.println(time);
sql包的Date类没有无参的构造函数,而util的Date类有无参的构造函数
java.util.Date date = new java.util.Date();是正确的   //Tue Jun 15 09:04:23 CST 2010
java.sql.Date date = new java.sql.Date();是错误的
但是sql包的Date有一个带long型参数的构造函数,因此可以使用以下方式
 
 
 java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());   //2010-6-17
 
new java.util.Date():构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. 下面是util包的Date的构造方法:
public Date() { this(System.currentTimeMillis()); }
 
 
 
还发现一件怪异的事情:
// String转化成date String str = "9-29-2001";
System.out.println(java.sql.Date.valueOf(str));
输出:
0016-10-21
真是奇怪.
三. Date转化成String
//Date转化成String: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.format(new Date()));
输出:
2010-06-17 16:30:21 781
四. Timestamp转化成String
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒
Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间
String str = df.format(now);
System.out.println(str);
输出:
2010-06-17 16:46:34
五. String转化成Timestamp
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date date11 = df1.parse("2010-6-2 16:10:38.00");
String time = df1.format(date11);
Timestamp ts = Timestamp.valueOf(time);
System.out.println(ts);
输出:
 2010-06-02 16:10:38.0



-------------------------------


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);


data默认有toString()输出格林威治时间

你要输出yyyy-MM-dd hh:mm:ss这种格式的话,使用SimpleDataFormat类

比如
Date date = new Date();
System.out.println(date);
String dateStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date);
System.out.println(dateStr); 

输出结果像下面这样:
Wed Sep 16 19:02:36 CST 2009
2009-09-16 07:02:36




java string类型怎么转化成date类型



http://zhidao.baidu.com/link?url=qxOSq1EvaT1QrF5P1QXtq10EkyeyFppSloPu0YBPNLr-4sZrwpp95g2ho2je-j4TVeTolJaT6gyFUUQP2RUyA_

   try {
            String str = "2013-04-08";
            Format f = new SimpleDateFormat("yyyy-MM-dd");
            Date d = (Date) f.parseObject(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }



总结三:

Java:String和Date、Timestamp之间的转换

一、String与Date(java.util.Date)互转(http://yunnick.iteye.com/blog/1074495)
 
     1.1 String -> Date
 
1.	String dateStr = "2010/05/04 12:34:23";   
2.	        Date date = new Date();   
3.	        //注意format的格式要与日期String的格式相匹配   
4.	        DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
5.	        try {   
6.	            date = sdf.parse(dateStr);   
7.	            System.out.println(date.toString());   
8.	        } catch (Exception e) {   
9.	            e.printStackTrace();   
10.	        }  
String dateStr = "2010/05/04 12:34:23";
		Date date = new Date();
		//注意format的格式要与日期String的格式相匹配
		DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		try {
			date = sdf.parse(dateStr);
			System.out.println(date.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
 
 
  1.2 Date -> String
 
   日期向字符串转换,可以设置任意的转换格式format
1.	String dateStr = "";   
2.	        Date date = new Date();   
3.	        //format的格式可以任意   
4.	        DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
5.	        DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");   
6.	        try {   
7.	            dateStr = sdf.format(date);   
8.	            System.out.println(dateStr);   
9.	            dateStr = sdf2.format(date);   
10.	            System.out.println(dateStr);   
11.	        } catch (Exception e) {   
12.	            e.printStackTrace();   
13.	        }  
String dateStr = "";
		Date date = new Date();
		//format的格式可以任意
		DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
		try {
			dateStr = sdf.format(date);
			System.out.println(dateStr);
			dateStr = sdf2.format(date);
			System.out.println(dateStr);
		} catch (Exception e) {
			e.printStackTrace();
		}
 二、String与Timestamp互转
 
 
   2.1 String ->Timestamp
 
 
   使用Timestamp的valueOf()方法
1.	Timestamp ts = new Timestamp(System.currentTimeMillis());   
2.	        String tsStr = "2011-05-09 11:49:45";   
3.	        try {   
4.	            ts = Timestamp.valueOf(tsStr);   
5.	            System.out.println(ts);   
6.	        } catch (Exception e) {   
7.	            e.printStackTrace();   
8.	        }  
Timestamp ts = new Timestamp(System.currentTimeMillis());
		String tsStr = "2011-05-09 11:49:45";
		try {
			ts = Timestamp.valueOf(tsStr);
			System.out.println(ts);
		} catch (Exception e) {
			e.printStackTrace();
		}
   注:String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!
    如果String为其他格式,可考虑重新解析下字符串,再重组~~
 
    2.2 Timestamp -> String
 
  使用Timestamp的toString()方法或者借用DateFormat
 
1.	Timestamp ts = new Timestamp(System.currentTimeMillis());   
2.	        String tsStr = "";   
3.	        DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
4.	        try {   
5.	            //方法一   
6.	            tsStr = sdf.format(ts);   
7.	            System.out.println(tsStr);   
8.	            //方法二   
9.	            tsStr = ts.toString();   
10.	            System.out.println(tsStr);   
11.	        } catch (Exception e) {   
12.	            e.printStackTrace();   
13.	        }  
Timestamp ts = new Timestamp(System.currentTimeMillis());
		String tsStr = "";
		DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		try {
			//方法一
			tsStr = sdf.format(ts);
			System.out.println(tsStr);
			//方法二
			tsStr = ts.toString();
			System.out.println(tsStr);
		} catch (Exception e) {
			e.printStackTrace();
		}
 很容易能够看出来,方法一的优势在于可以灵活的设置字符串的形式。
三、Date( java.util.Date )和Timestamp互转
 
  声明:查API可知,Date和Timesta是父子类关系
 
 
  3.1 Timestamp -> Date
 
 
1.	Timestamp ts = new Timestamp(System.currentTimeMillis());   
2.	        Date date = new Date();   
3.	        try {   
4.	            date = ts;   
5.	            System.out.println(date);   
6.	        } catch (Exception e) {   
7.	            e.printStackTrace();   
8.	        }  
Timestamp ts = new Timestamp(System.currentTimeMillis());
		Date date = new Date();
		try {
			date = ts;
			System.out.println(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
 很简单,但是此刻date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中。
 
 
   3.2 Date -> Timestamp
 
   父类不能直接向子类转化,可借助中间的String~~~~
     注:使用以下方式更简洁
   Timestamp ts = new Timestamp(date.getTime());
还可以是:Timestamp ts = new Timestamp(date.getTime());
将Timestamp转换成Date
http://www.2cto.com/kf/201201/117144.html
public static Date timestampToDate(Timestamp tt){ 
    return new Date(tt.getTime()); 
} 

java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));
//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);
//这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
自己补的话
这样的话:
        往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。
       从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个java.util.Date对象,这样就可以对这个Date对象操作了。不如说 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值