1 SimpleDateFormat担当重任,怎样格式化都行
import java.util.Date; import java.text.SimpleDateFormat; public class Demo { public static void main(String[] args) { Date now=new Date(); SimpleDateFormat f=newSimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分"); System.out.println(f.format(now)); f=new SimpleDateFormat("a hh点mm分ss秒"); System.out.println(f.format(now)); } }
2 从字符串到日期类型的转换:
import java.util.Date; import java.text.SimpleDateFormat; import java.util.GregorianCalendar; import java.text.*; publicclass Demo { public static void main(String[] args) { String strDate="2005年04月22日"; //注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); //必须捕获异常 try { Date date=simpleDateFormat.parse(strDate); System.out.println(date); } catch(ParseException px) { px.printStackTrace(); } } }
3 将毫秒数换转成日期类型
import java.util.Date; import java.text.SimpleDateFormat; import java.util.GregorianCalendar; import java.text.*; public class Demo { public static void main(String[] args) { long now=System.currentTimeMillis(); System.out.println("毫秒数:"+now); Date dNow=new Date(now); System.out.println("日期类型:"+dNow); } }
这3例源自http://blog.csdn.net/zhoujian2003/archive/2005/04/22/358363.aspx
4 获取系统时期和时间,转换成SQL格式后更新到数据库
(http://blog.csdn.net/netrope/archive/2005/11/19/532729.aspx)
java.util.Date d=new java.util.Date(); //获取当前系统的时间
//格式化日期
new java.text.SimpleDateFormat s= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = s.format(d); //转为字符串
使用RS更新数据库,仍然要用rs.updateString,而不是rs.updateDade。
rs.updateString("regtime",dateStr); //regtime字段为datetime类型的
下面两例源自http://blog.csdn.net/kingter520/archive/2004/10/27/155435.aspx
5 按本地时区输出当前日期
Date myDate = new Date(); System.out.println(myDate.toLocaleString()); 输出结果为: 2003-5-30
6 如何格式化小数
DecimalFormat df = new DecimalFormat(",###.00"); double aNumber = 33665448856.6568975; String result = df.format(aNumber); Sytem. out.println(result); 输出结果为: 33,665,448,856.66 其他:获取毫秒时间 System.currentTimeMillis();
7 在数据库里的日期只以年-月-日的方式输出
(http://blog.csdn.net/zzsxvzzsxv/archive/2007/08/27/1761004.aspx)
定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);
sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";
输出:
System.out.println(df.format(rs.getDate("bookDate")));
8 经典例子(http://blog.csdn.net/donkeyzheng/archive/2005/12/30/566470.aspx)
Date date = from.getAfmdate(); if (null != date) { SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy"); SimpleDateFormat monthFormat = new SimpleDateFormat("MM"); SimpleDateFormat dayFormat = new SimpleDateFormat("dd"); to.setAfmYear(yearFormat.format(date)); to.setAfmMonth(monthFormat.format(date)); to.setAfmDay(dayFormat.format(date)); } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); appPo.setAfmdate(format.parse(appForm.getAfmYear() + "-" + appForm.getAfmMonth() + "-" + appForm.getAfmDay()));
------------------------------------------------------------------------------下面是自己总结的---------------------------------------------------------------------------------------------------
9.java.util.Date包中的日期存入数据库,转为java.sql.Date方法
注意:java.sql.Date类是继承自java.util.Date
public void ToDataBase(java.util.Date date){ //.....连接的一些操作 //这样存入的日期便没有具体的时间 ps.setBirthday(1,new java.sql.Date(date.getTime())); }
10.从数据库中取出java.sql.Date类型数据,转为java.util.Date的方法
public void FromDataBase(){ //因为是父类与子类的关系,所以从子类转为父类可以通过上转型直接得到 java.util.Date date = rs.getDate("birthday"); }
11.将字符串日期类型以java.sql.Date类型存入数据库
String time = "2001-01-01"; SimpleDateFormat s = new SimpleDateFormat("yyyy-mm-dd"); Date t = s.parse(time); java.sql.Date da = new java.sql.Date(t.getTime());
实用封装类
public class StringUtil { public static String formatDate(Date date){ if(date==null){ return ""; } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(date); } public static String formatDate(long time){ Date date = new Date(time); SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss"); return format.format(date); } public static String formatDate(String time){ Date date = new Date(Long.valueOf(time)); SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss"); return format.format(date); } public static boolean isNumber(String str){ boolean isOk = false; try { Integer.valueOf(str); isOk = true; } catch (NumberFormatException e) { isOk = false; e.printStackTrace(); } return isOk; } }
出自:http://www.cnblogs.com/-cyb/articles/Android_Date_format_Change.html
---------------------------------------------String 、 Date 、 Timestamp三者之间的转换-----------------------------------------------------------
注: Timestamp 是java.sql包中的类,类库中还有一个(是在java.security中的)
一: String 与 Date之间的转换
1.1 String --> Date
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
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()方法
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
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 和 Timestamp 之间相互转换
3.1 Date --> Timestamp
/** 父类不能直接向子类转化,可借助中间的String~~~~ 注:使用以下方式更简洁 */ Timestamp ts = new Timestamp(date.getTime());
3.2 Timestamp -- > Date
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中。