`

Java中日期格式转换总结

    博客分类:
  • java
 
阅读更多

 

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中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java日期格式的转换

    java 日期格式转换,编程的时候找到,自己也总结了一点。

    JAVA中的日期时间类用法总结

    主要给大家介绍了关于JAVA中日期时间类用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java基础之日期操作总结

    一、日期格式化, 以及字符串转换成日期  主要用到 SimpleDateFormat 类实现日期的格式化,以及日期字符串的解析。  示例:  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  // ...

    Java Date总结

    java时间处理、日期格式转换、 日期格式转换工具类

    关于日期的处理包括java和sql

    关于日期的处理包括java和sql。其中提到各种情况,如字符串和日期之间转换、日期的增减、获取年月日、日期比较大小等等,个人总结的拿出来和大家共享一下

    java 算法

    多线程的世界时钟,显示巴黎,罗马,上海时间, AWT界面,Java日期格式化及其使用例子,几个常用方法,判断字符是否属于中文,异常处理类,去掉字符串中重复的子字符串,将指定byte数组以16进制的形式打印到控制台,...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    java工具类.zip

    1.利用public static method进行日期格式的转换 2.利用内容的Calendar object进行日期的计算,适合有大量的日期计算,用method 1则效率低的场合 3处理json日期转化问题 4提供高精度的运算支持. 所以函数以double为...

    Java面试宝典2010版

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上的各种问题及解决方案。  《Java JDK 7学习笔记》详细介绍了JVM、JRE、Java SE API、JDK与IDE...

    整理后java开发全套达内学习笔记(含练习)

    进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...

    java解析json方法总结

    工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,...功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源

    分享一些java常用的工具类(源码) 非常实用

    java开发工作多年总结的的一些工具类; 包括有: 1、常用的日期类操作 2、excel操作 3、xml操作 4、集成科大讯飞语言合成工具类; 5、集合类操作(list,map,array) ...12、语音文件各种格式转换(java) ……

    JSP实用技巧集合,jsp编程的一些小技巧总结

    32. 把一种格式(如yyyy-mm-dd)的日期变量转换成另外一种格式(如dd-mm-yyyy)的日期变量! 33. 实现在页面上添加一行输入对话框 34. 制作验证码图片? 35. 图片缩小放大功能 36. 点击输入框弹出日期选择? 37. 在...

    Java 9中新的货币API

     正如我在之前那篇Java 8新的日期时间API一文中那样,本文主要也是通过一些代码来演示下新的API的用法 。  在开始之前,我想先用一段话来简短地总结一下规范定义的这套新的API的用意何在:  对许多应用而言...

    Java学习笔记-个人整理的

    {5.1.1}各类时间日期转换}{94}{subsection.5.1.1} {5.1.2}时间的输入与输出}{97}{subsection.5.1.2} {5.2}数字的输入输出}{97}{section.5.2} {5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}...

    freemarker总结

    这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>... <#else> ... 例子如下: (age>60)>老年人 ...

    javashuffle源码-Spark:火花

    特意构造并实践了生产中的线程安全日期转换,IP映射城市,cache、foreachPartition、批量提交入库等性能提升代码。 5.sparkstreaming包:主要码了rdd算子之外的流式计算常用算子,累计计数UpdateStateByKey和...

    JSSDK:Java实现分享微信朋友圈接口Demo

    微信JS-SDK官方说明文档官方文档很长,下面我为大家把精要总结出来.一. 所需变量名词解释URL:要分享朋友圈的地址.token:通过微信公众号APPID和secret所生成,用于生成ticket.ticket:由token生成出来的票,用于生成签名....

Global site tag (gtag.js) - Google Analytics