怎么把一个String类型的时间:比如2010-03-26 00:03:18 转换成
Date类型的时间,格式不变,依然是2010-03-26 00:03:18这样的格式。用SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); 转换成的效果为 Fri Mar 26 00:20:18 CST 2010
,求解!
SimpleDateFormat 是可以设置格式的,例如: SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期相关工具类
*
* @author
*
*/
public class DateTools {
/**
* 根据日期及格式format获取日期字符串
*
* @param date
* @param format
* @return
*/
public static String getDateString(Date date,String format){
SimpleDateFormat yfm = new SimpleDateFormat(format);
String year="";
year=yfm.format(date);
return year;
}
/**
* 根据日期字符串及格式format获取日期
*
* @param dateString
* @param format
* @return
*/
public static Date getDate(String dateString,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date=null;
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date;
}
/**
* 编辑日期的年份
*
* @param date
* @param num
* @return
*/
public static Date editYear(Date date,int num){
Calendar dt = Calendar.getInstance();
dt.setTime(date);
dt.add(Calendar.YEAR, num);
return dt.getTime();
}
/**
* 编辑日期的月份
*
* @param date
* @param num
* @return
*/
public static Date editMonth(Date date,int num){
Calendar dt = Calendar.getInstance();
dt.setTime(date);
dt.add(Calendar.MONTH, num);
return dt.getTime();
}
/**
* 编辑日期的日
*
* @param date
* @param num
* @return
*/
public static Date editDay(Date date, int num) {
Calendar dt = Calendar.getInstance();
dt.setTime(date);
dt.add(Calendar.DAY_OF_MONTH, num);
return dt.getTime();
}
/**
* 编辑日期的时
*
* @param date
* @param num
* @return
*/
public static Date editHour(Date date, int num) {
Calendar dt = Calendar.getInstance();
dt.setTime(date);
dt.add(Calendar.HOUR, num);
return dt.getTime();
}
/**
* 编辑日期的秒
*
* @param date
* @param num
* @return
*/
public static Date editSecond(Date date, int num) {
Calendar dt = Calendar.getInstance();
dt.setTime(date);
dt.add(Calendar.SECOND, num);
return dt.getTime();
}
}
public java.util.Date stringToDatetime(String myDateStr) {
myDateStr = formatDateString(myDateStr);
if (myDateStr.length() < 19) {
// return null;
myDateStr = myDateStr.substring(0, 10) + " 00:00:00";
}
myDateStr = myDateStr.substring(0, 19);
String sFormat = "yyyy-MM-dd HH:mm:ss";
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(sFormat);
java.util.Date d = null;
try {
d = sdf.parse(myDateStr);
} catch (java.text.ParseException pe) {
log.error("Parse date from string error!", pe);
}
return d;
}
直接把"2010-03-26 00:03:18"作为参数传到sql中,是可以在数据库中运行的
你直接打印那个转换后的date就是那样的,你的转换没有问题,你的分钟发错了吧
/**
* <b>说明: </b>日期转换
* @param strDate
* @param strFormat
* @return
*/
public static Date parseDate(String strDate,String strFormat){
return DateUtils.parseDateStrictly(strDate, "yyyyMMdd");
/**
* <b>说明: </b>日期转换
* @param strDate
* @param strFormat
* @return
*/
public static Date parseDate(String strDate ){
return DateUtils.parseDateStrictly(strDate, "yyyyMMdd");
}