`

日期在String和Date类型之间的转换

    博客分类:
  • java
阅读更多

日期在String和Date类型转换;ParsePosition,formatter.parse,java.sql.T...

将String型的“****年**月**日”转换成Date型
private Date DTStringtoDate(String dtToDate){
  
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
   ParsePosition pos = new ParsePosition(0);  
   java.util.Date datetime = formatter.parse(dtToDate, pos);
   java.sql.Timestamp ts = null;  
  
   if(datetime != null){
   
    ts = new java.sql.Timestamp(datetime.getTime());
   }
  
   return ts;
}

 

分析如下:
1.
ParsePosition pos = new ParsePosition(0);       从第一个字符开始解析

public class ParsePosition extends Object

 

ParsePositionFormat 及其子类所使用的简单类,用来在分析过程中跟踪当前位置。

2. java.util.Date datetime = formatter.parse(dtToDate, pos);

对参数dtToDate(String类型)从第一个字符开始解析(由pos),转换成java.util.Date类型,
而这个Date的格式为"yyyy-MM-dd"(因为SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");)

3. java.sql.Timestamp(与java.sql.Date)

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,
若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可

package personal.jessica;
import java.util.Date;
import java.util.Calendar;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
class Datetest{
/**
*method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
*@param dateString 需要转换为timestamp的字符串
*@return dataTime timestamp
*/
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", Locale.ENGLISH);//设定格式
   //dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
   dateFormat.setLenient(false);
   java.util.Date timeDate = dateFormat.parse(dateString);//util类型
   java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
   return dateTime;
}
/**
*method 将字符串类型的日期转换为一个Date(java.sql.Date)
*@param dateString 需要转换为Date的字符串
*@return dataTime Date
*/
public final static java.sql.Date string2Date(String dateString)
   throws java.lang.Exception {
   DateFormat dateFormat;
   dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
   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 static void main(String[] args){
   Date da = new Date();
   //注意:这个地方da.getTime()得到的是一个long型的值
   System.out.println(da.getTime());
  
   //由日期date转换为timestamp
  
   //第一种方法:使用new Timestamp(long)
   Timestamp t = new Timestamp(new Date().getTime());
   System.out.println(t);

   //第二种方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
   Timestamp tt = new Timestamp(Calendar.getInstance().get(
       Calendar.YEAR) - 1900, Calendar.getInstance().get(
       Calendar.MONTH), Calendar.getInstance().get(
       Calendar.DATE), Calendar.getInstance().get(
       Calendar.HOUR), Calendar.getInstance().get(
       Calendar.MINUTE), Calendar.getInstance().get(
       Calendar.SECOND), 0);
   System.out.println(tt);

   try {
    String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
       String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
      Date date1 = string2Date(sToDate);
      Timestamp date2 = string2Time(sToTimestamp);
    System.out.println("Date:"+date1.toString());//结果显示
    System.out.println("Timestamp:"+date2.toString());//结果显示
   }catch(Exception e) {
    e.printStackTrace();
   }
}
}

===========================
怎样处理一个时间段,比如某人登陆了xx天xx小时xx分xx秒

这个问题可以如下处理:
首先你肯定可以从数据库中读取这个用户第一次登陆的具体时间:
不妨为2002-01-01 12:00:00
同样他到目前为止最后登陆的具体时间:
不妨为2002-09-08 13:14:15
若取得是数据本来就是时间类型的,则不用转化,若是String的则可以在转化后处理。

你可以利用类似上面的例子,取得这两个时间对应的Timestamp值dateTime
然后使用dateTime.getTime()方法得到这两个时间的long值,进行相减(大的减小的,即按时间后减先),得到一个long值,它是用毫秒milliseconds计算的,你将它换算一下就知道多少天多少小时多少分多少秒了
比如首先除于(java中/除)一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时……最后就可以得到所有的需求了

为了您的安全,请只打开来源可靠的网址

打开网站    取消

来自: http://hi.baidu.com/%B8%FD%C4%C4/blog/item/280b4f1807ab4b4f43a9adbf.html
分享到:
评论

相关推荐

    String和Date的转换

    在Java编程语言中,`String`和`Date`类型的转换是常见的操作,特别是在处理日期和时间数据时。这里我们将深入探讨如何在`String`和`Date`之间进行转换,以及如何利用`DateFormat`和`SimpleDateFormat`类进行格式化。...

    Java日期时间Date类型,long类型,String类型表现形式的转换.pdf

    本文档将详细介绍如何在Java中实现Date类型、long类型和String类型之间的相互转换。 首先,我们来看Date类型转换为long类型。Date类提供了getTime()方法,可以返回一个代表时间的long型的毫秒值。这个值是从1970年1...

    js string转date(js字符串转换成日期,代码调试通)

    js string转date,js字符串转换成日期,此代码支持将datetime(年月日小时分秒格式)转换为js的Date类型,程序已调试并支持在HTML中运行、代码请见附件。

    有关日期Date 和String型相互转换

    在Java编程语言中,日期(Date)对象和字符串(String)之间的转换是常见的操作。日期对象用于存储和处理时间信息,而字符串则常用于显示日期或读取用户输入。了解如何在两者之间进行转换对于编写涉及日期处理的程序...

    Date类型数据转换

    SimpleDateFormat类提供了parse()方法和format()方法,可以将String类型的日期字符串转换为Date类型的日期对象,也可以将Date类型的日期对象转换为String类型的日期字符串。同时,日期格式是Date类型数据转换的关键...

    String与date的转换

    在Java开发中,字符串(String)与日期(Date)之间的转换是一项常见的需求。例如,在处理用户输入的数据、解析文本文件或与数据库交互时,通常需要将字符串转换为日期对象进行进一步的操作,如日期计算、排序等;相反地...

    js date转String 日期字符串转换

    在JavaScript中,`Date`对象提供了多种方法来获取和设置日期及时间。本文将详细介绍如何将`Date`对象转换成字符串格式,这对于数据展示、存储以及传输等场景非常有用。 #### 1. 基本概念 在JavaScript中,`Date`...

    date和string互相装换

    在Java开发过程中,日期(`Date`)与字符串(`String`)之间的相互转换是非常常见的需求。这不仅涉及到数据类型的转换,还涉及到时间格式的处理。本文将详细介绍如何实现`Date`与`String`之间的自由转换,并提供具体...

    string和date之间转换,时间差计算

    时间差计算 string和date之间转换 拿到年月日(yyyy年MM月dd日HH点mm分)

    String、Calendar、Date间的相互转换

    ### String、Calendar、Date间的相互转换 在Java中,日期和时间处理是非常常见的需求之一,尤其是在涉及用户界面或数据处理的应用程序中。本篇将详细解释如何在`String`、`Calendar`、`Date`之间进行转换,并提供...

    Date、String、Timestamp之间的转换

    Date、String、Timestamp 是 Java 中三个常用的日期和时间类,它们之间的转换是 Java 开发中经常遇到的问题。在本文中,我们将详细介绍 Date、String、Timestamp 之间的转换方法。 Date 和 String 之间的转换 在 ...

    有关java中的Date,String,Timestamp之间的转化问题

    Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取系统当前时间 在 Java 中,可以使用以下三种方法来获取...

    String和Date工具类

    本篇文章将详细讲解`String`和`Date`工具类中涉及的知识点,以及如何在实际开发中有效地运用它们。 首先,我们来看`String`工具类。在Java中,`String`对象是不可变的,这意味着一旦创建,就不能改变其内容。因此,...

    JAVA String to Date 含Mon等缩写格式

    日期转换例子,支持含各种语言的三个字母缩写...适用于数据导入数据库String类型中含英文缩写转换,网上普遍使用的String to Date 都不适用含Mon Jul 等缩写,对比API,可以实现任意格式的String 类型转换成Date类型

    java中将string类型转换成timestamp类型

    在上面的代码中,我们首先创建了一个SimpleDateFormat对象,用于将String类型的日期字符串转换成Date类型的日期对象。然后,我们使用parse()方法将String类型的日期字符串转换成Date类型的日期对象。最后,我们使用...

    jdbc操作数据库之Date类型

    Hibernate会自动管理日期类型的转换,这意味着开发者不需要担心`java.util.Date`和`java.sql.Date`之间的转换细节,也不需要关心存储的日期是否包含时间部分。这是因为Hibernate内部实现了相应的映射逻辑,使得开发...

Global site tag (gtag.js) - Google Analytics