Date与String之前的转化问题

转载 2007年09月14日 20:51:00

我遇到一个问题,就是SQL SERVER下的datetime字段
与JAVA类下的Date对象之家转化的问题,
例如数据库中是这样:‘2006-10-13 22:12:10’
的字符串,
Date对象有个相互转化的问题,
例如我想把Date转化为上面的字符串形式,
还有就是把上面的这个字符串转化为Date对象,
怎以样作到呢?
急 !



/**
* @param str 格式要求:yyyy,m(mm),d(dd); 如:2002-01-02,2002-1-2,2002-2-15
* @return 成功返回日期,失败返回null;
*/
public static Date stringToDate(String str) {
String strFormat = "yyyy-MM-dd HH:mm";
if (str != null && str.length() == 10) {
strFormat = "yyyy-MM-dd";
}
SimpleDateFormat sdFormat = new SimpleDateFormat(strFormat);
Date date = new Date();
try {
date = sdFormat.parse(str);
}
catch(Exception e) {
//System.out.println("Error="+e);
return null;
}
return date;
}

public static Date stringToDate(String str, String strFormat) {
SimpleDateFormat sdFormat = new SimpleDateFormat(strFormat);
Date date = new Date();
try {
date = sdFormat.parse(str);
}
catch(Exception e) {
return null;
}
return date;
}

public static String dateToYMD(Date dt) {
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd");
String str = "";
try {
str = sdFormat.format(dt);
}
catch(Exception e) {
return "";
}
if (str.equals("1900-01-01")) {
str = "";
}

return str;
}

public static String dateToString(Date dt) {
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String str = "";
try {
str = sdFormat.format(dt);
}
catch(Exception e) {
return "";
}
if (str.equals("1900-01-01 00:00")) {
str = "";
}

return str;
}

public static String dateToString(Date dt, String strFormat) {
SimpleDateFormat sdFormat = new SimpleDateFormat(strFormat);
String str = "";
try {
str = sdFormat.format(dt);
}
catch(Exception e) {
return "";
}
if (str.equals("1900-01-01 00:00")) {
str = "";
}

return str;
}



Date类转化成字符串:
Date date=new Date();
System.out.println(date.toLocalString());

把字符串转化成Date
String str="2006-10-13 22:12:10";
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date=dateFormat.parse(str);
=====================================================================================

/*
 * DateUtil Class : 在于提供关于时间操作的一系列公用操作方法
 * Create Date : 2004-2-9
 * Version 1.0
 */
import java.sql.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class DateUtil {

  public DateUtil() {

  }

  /**
   * 根据格式获得日期字符串
   * @param sFormat
   * @return
   */
  public static String getDateStr(String sFormat) {
    Calendar tCal = Calendar.getInstance();
    Timestamp ts = new Timestamp(tCal.getTime().getTime());
    java.util.Date date = new java.util.Date(ts.getTime());
    SimpleDateFormat formatter = new SimpleDateFormat(sFormat);
    String tmpStr = formatter.format(date);
    return (tmpStr);
  }

  /**
   * 根据给定格式获取特定时间的格式化显示
   * @param ts
   * @param sFormat
   * @return
   */
  public static String getDateFormat(Timestamp ts, String sFormat) {
    Date date = new Date(ts.getTime());
    SimpleDateFormat formatter
        = new SimpleDateFormat(sFormat);
    String tmpStr = formatter.format(date);
    return tmpStr;
  }

  /**
   * 格式化日期
   * @param ts
   * @return
   */
  public static String getSDate(Timestamp ts) {
    Date date = new Date(ts.getTime());
    SimpleDateFormat formatter
        = new SimpleDateFormat("yyyy-MM-dd");
    String tmpStr = formatter.format(date);

    return tmpStr;
  }

  /**
   * 将String类型的日期转换为时间
   * @param dt
   * @return
   */
  public static Timestamp getTs(String dt) {
    Date date = java.sql.Date.valueOf(dt);
    Calendar tCal = Calendar.getInstance();
    tCal.setTime(date);
    Timestamp ts = new Timestamp(tCal.getTime().getTime());
    return ts;
  }

  /**
   * 建议获得短日期的处理方式
   * 例如: getShortDate(2004-10-10 10:10:10.123) = 2004-10-10
   * @param dt
   * @return
   */
  public static String getShortDate(String dt) {
    try {
      return dt.substring(0, dt.indexOf(" "));
    }
    catch (Exception e) {
      return dt;
    }
  }

  /**
   *
   * 取得当前日期时间
   * @return
   */
  public static Timestamp getCurrDateTime() {
    Calendar tCal = Calendar.getInstance();
    Timestamp createDate = new Timestamp(tCal.getTime().getTime());
    return createDate;
  }

  /**
   * 获得最常见的日期格式内容 : 年-月-日 小时-分钟-秒
   * @param ts
   * @return
   */
  public static String getSDateTime(Timestamp ts) {
    return getDateFormat(ts, "yyyy-mm-dd HH:mm:ss");
  }

  /*格式化日期*/
  public static String getSTime(Timestamp ts) {
    return getDateFormat(ts, "HH:mm:ss");
  }

  /**
   * 获取当天的日期
   * @return
   */
  public static String getToday() {
    java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    return formatter.format(ts);
  }

  // 根据时间获得随机数
    public static String getRnd()
    {
      Calendar tCal = Calendar.getInstance();
      Timestamp ts = new Timestamp(tCal.getTime().getTime());
      java.util.Date date = new java.util.Date(ts.getTime());
      SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMddhhmmss");
      String tmpStr = formatter.format(date)+Math.round(Math.random()*1000+1);

      return (tmpStr);
    }

    /**
     * 计算日期之间的差值 2004-3-25 增加
     * @param dt1
     * @param dt2
     * @return
     */
   public static int dateDiff(Timestamp dt1, Timestamp dt2) {
     long ldate1 = dt1.getTime();
     long ldate2 = dt2.getTime();
     return (int)((ldate2-ldate1) / (1000*60*60*24));
   }

 

  /**
   * 获取明天的日期
   * @return
   */
  public static String getTomorrow() {
    return getNextDay(getToday());
  }

  /**
   * 获得当前日期的下一天
   * @param date
   * @return
   */
  public static String getNextDay(String date) {
    if (date == null || date.trim().length() == 0) {
      return "";
    }
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar = Calendar.getInstance();
    try {
      calendar.setTime(f.parse(date));
    }
    catch (ParseException ex) {
      return date;
    }
    calendar.add(5, 1);
    return f.format(calendar.getTime());
  }
  /**
   * LST
   * num为正:当前日期后num天是返回值
   * num为负:当前日期前num天是返回值
   * 返回的日期的格式:yyyy-MM-dd
   */
 public static String getTheDay(int num){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    GregorianCalendar gc =   new GregorianCalendar();
    gc.add(GregorianCalendar.DATE, num);
    Date theday =gc.getTime();
    return sdf.format(theday);
 }


}


 

数据库中Date类型数据导入到报表去掉00:00

问题:          Date在sql server数据库中是日期类型,也就是年月日形式yyyy年MM月dd日,但是导入到报表中就变成了yyyy年MM月dd日 00:00,即多了00:00 如何去...
  • wrs120
  • wrs120
  • 2017年03月22日 16:08
  • 680

PHP 获取 今日 本月 上月

//今日 $today=mktime(0,0,0,date('m'),date('d'),date('Y'));  //本月月初时间戳 $month_start=mkti...
  • Generalsphper
  • Generalsphper
  • 2017年01月21日 11:20
  • 137

java8使用date获取某月第一天的00:00:00&某月最后一天的23:59:59

public static void main(String[] args) throws Exception {//86400 System.out.println(getLastDayOf...
  • qiang0066
  • qiang0066
  • 2017年10月30日 14:31
  • 335

关于date处理的一个util,日期格式化,自定义格式化,日期计算

工作中用到的一些方法,由于经常使用,就自己整理了一个util类,当用到相关方法时,可以直接调用,方便了很多,大家可以直接拿去扔进项目里,里面注释挺详细的,方便阅读代码和直接使用。当然了,也可以根据自己...
  • Kaer_GG
  • Kaer_GG
  • 2016年08月19日 11:26
  • 921

hive日期函数总结

1.日期函数 to_date(string expr) 返回类型:string 描述:返回时间字符串日期部分 to_date(expr) - Extracts the date part of ...
  • Luckyzhou_
  • Luckyzhou_
  • 2017年04月10日 15:48
  • 298

Java 日期工具类(日期,月份加减等)

package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util....
  • damaolly
  • damaolly
  • 2014年11月24日 17:52
  • 26544

JavaScript_日期加月计算

/** * 日期加月计算 * num:要加的月数 * sdate:要计算的日期,日期对象 */ function addMonth(num,sdate) { //日期不传默认为当前日期 var d =...
  • z100871519
  • z100871519
  • 2014年07月07日 11:45
  • 1797

[linux][Ubuntu]如何让date命令等地方显示英文日期

1.机器上装的是Ubuntu 12.04 英文版,但是不知到怎么回事,偏偏各显示日期的地方,都是中文格式的,看上去特别扭。 例如:2015年3月25日 星期三 04时13分19秒 2.起始...
  • u013398960
  • u013398960
  • 2017年04月06日 09:16
  • 1659

Android Sqlite对Date类型操作总结

首先,sqlite数据库在时间处理上和sqlserver还有oracle不同,下面根据自己做过的实例总结一下.  创建了一个Log数据表:  LogID SourceID Oper...
  • chang_xing
  • chang_xing
  • 2014年07月06日 23:50
  • 2065

java对日期Date类进行加减运算、年份加减,月份加减

JAVA处理日期时间常用方法: 1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历...
  • yf198708
  • yf198708
  • 2016年07月08日 11:26
  • 37022
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Date与String之前的转化问题
举报原因:
原因补充:

(最多只允许输入30个字)