如何让字符串转换为日期?

scholes3232 2003-09-15 10:48:54
有一个字符串为2003-09-15 00:00:00,如何转换为日期类型;
...全文
910 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yanbin_Q 2003-11-05
  • 打赏
  • 举报
回复
up
mountsnow 2003-09-15
  • 打赏
  • 举报
回复
另一种方法:
to_date(strDate,'YYYY-MM-DD HH:MS:SS')
junyi2003 2003-09-15
  • 打赏
  • 举报
回复
呵呵,收藏。
fast_time 2003-09-15
  • 打赏
  • 举报
回复
UP
dmhorse 2003-09-15
  • 打赏
  • 举报
回复
/**
* Convert string to date object
* @param strD the string date format:yyyy-MM-dd HH:mm:ss
* @return
*/
public static Date strToDate(String strD)
{
try
{
String strFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
return sdf.parse(strD);
}catch(java.text.ParseException e)
{
throw new mfutil.MFUtilException("Can not convert string to date object:"+ strD);
}
}
highreport 2003-09-15
  • 打赏
  • 举报
回复
//计算当天零点到当年零点的秒数
public int CalcSecondsToday()
{
int sum=0;
for(int i=1;i<getMonth();i++)
{
if(i==2)
sum+=(((getYear()%4==0)&&(getYear()%100!=0))||(getYear()%400==0))?29:28;
else if((i<=7)&&(i!=2))
sum+=(i%2==0)?30:31;
else if(i>=8&&i!=2)
sum+=(i%2==0)?31:30;
}
sum=sum+getDay()-1;
sum=sum*24*3600;
return sum;
}
//计算当年的秒数
public int CalcSecondsInAYear()
{
int sum=0;
for(int i=1;i<=12;i++)
{
if(i==2)
sum+=(((getYear()%4==0)&&(getYear()%100!=0))||(getYear()%400==0))?29:28;
else if((i<=7)&&(i!=2))
sum+=(i%2==0)?30:31;
else if(i>=8&&i!=2)
sum+=(i%2==0)?31:30;
}
sum=sum*24*3600;
return sum;
}
//计算时间由年和秒数
public void calcDateTimeInSeconds(int year,int sum)
{
JDate time=new JDate();
time.setYear(year);
time.setMonth(1);
time.setDay(1);
JDate time1=time.calcDateTimeAddSeconds(sum);
setDate(time1.m_Year,time1.m_Month,time1.m_Day,time1.m_Hour,time1.m_Minutes,time1.m_Seconds);
}
//增加秒数变成新的时间
public JDate calcDateTimeAddSeconds(int Sum)
{
JDate date1=new JDate();
date1.m_Year = m_Year;
date1.m_Month=m_Month;
date1.m_Day=m_Day;
date1.m_Hour=m_Hour;
date1.m_Minutes=m_Minutes;
date1.m_Seconds=m_Seconds;
if(date1.m_Seconds+Sum>=60)
{
date1.m_Minutes+=(date1.m_Seconds+Sum)/60;
date1.m_Seconds=(date1.m_Seconds+Sum)%60;
}
if(date1.m_Minutes>=60)
{
date1.m_Hour+=(date1.m_Minutes/60);
date1.m_Minutes=date1.m_Minutes%60;
}
if(date1.m_Hour>=24)
{
date1.m_Day+=(date1.m_Hour/24);
date1.m_Hour=(date1.m_Hour%24);
}
while(date1.m_Day>date1.calcCurrentMonthDay())
{
date1.m_Day-=date1.calcCurrentMonthDay();
date1.m_Month++;
}
while(date1.m_Month>12)
{
date1.m_Month-=12;
date1.m_Year++;
}
return date1;
}
//输出时间的字符串格式
public String toString(int type)
{
String s=new String();
if(type==JDate.Enum_Time)
{
if(this.m_Hour<10)
s="0"+this.m_Hour;
else
s=""+this.m_Hour;
if(this.m_Minutes<10)
s=s+":0"+this.m_Minutes;
else
s=s+":"+this.m_Minutes;
if(this.m_Seconds<10)
s=s+":0"+this.m_Seconds;
else
s=s+":"+this.m_Seconds;
}
else if(type==JDate.Enum_Date)
{
s=s+this.m_Year;
if(this.m_Month<10)
s=s+"-0"+this.m_Month;
else
s=s+"-"+this.m_Month;
if(this.m_Day<10)
s=s+"-0"+this.m_Day;
else
s=s+"-"+this.m_Day;
}
else if(type==JDate.Enum_DateTime)
{
s=s+this.m_Year;
if(this.m_Month<10)
s=s+"-0"+this.m_Month;
else
s=s+"-"+this.m_Month;
if(this.m_Day<10)
s=s+"-0"+this.m_Day;
else
s=s+"-"+this.m_Day;
if(this.m_Hour<10)
s=s+" 0"+this.m_Hour;
else
s=s+" "+this.m_Hour;
if(this.m_Minutes<10)
s=s+":0"+this.m_Minutes;
else
s=s+":"+this.m_Minutes;
if(this.m_Seconds<10)
s=s+":0"+this.m_Seconds;
else
s=s+":"+this.m_Seconds;
}
return s;
}
//将字符串转换为时间
public void StringToDate(String str)
{
try{
this.setDate(0,0,0,0,0,0);
this.setYear(Integer.parseInt(str.substring(0,str.indexOf("-"))));
str=str.substring(str.indexOf("-")+1);
this.setMonth(Integer.parseInt(str.substring(0,str.indexOf("-"))));
str=str.substring(str.indexOf("-")+1);
if(str.indexOf(" ")!=-1)
{
this.setDay(Integer.parseInt(str.substring(0,str.indexOf(" "))));
str=str.substring(str.indexOf(" ")+1);
this.setHour(Integer.parseInt(str.substring(0,str.indexOf(":"))));
str=str.substring(str.indexOf(":")+1);
this.setMinutes(Integer.parseInt(str.substring(0,str.indexOf(":"))));
str=str.substring(str.indexOf(":")+1);
this.setSeconds(Integer.parseInt(str));
}
else
{
this.setDay(Integer.parseInt(str));//只有天数
}
}
catch(Exception ex)
{
System.out.println("StringToDate="+ex.getMessage());
}
}
//计算两个时间间隔的秒数
public int calcIntervalSeconds(JDate endtime)
{
JDate yearDate=new JDate();
int startInterval=this.CalcSecondsInDate();
int endInterval=endtime.CalcSecondsInDate();
if(endtime.getYear()>=this.m_Year)
{
for(int i=0;i<endtime.getYear()-this.m_Year;i++)
{
yearDate.setYear(this.m_Year+i);
endInterval=endInterval+yearDate.CalcSecondsInAYear();
}
}
else
{
for(int i=0;i<this.m_Year-endtime.getYear();i++)
{
yearDate.setYear(endtime.getYear()+i);
startInterval=startInterval+yearDate.CalcSecondsInAYear();
}
}
return endInterval-startInterval;
}
//得到是星期几第一天是星期一
public int getIndexInWeek()
{
Calendar calendar = new GregorianCalendar();
calendar.set(this.m_Year,this.m_Month-1,this.m_Day,this.m_Hour,this.m_Minutes,this.m_Seconds);
return calendar.get(Calendar.DAY_OF_WEEK)==0?7:calendar.get(Calendar.DAY_OF_WEEK);
}
}
highreport 2003-09-15
  • 打赏
  • 举报
回复
我写一个时间类
package LR.cclient;
import java.util.*;
import java.util.GregorianCalendar;
public class JDate
{
//字符串转换标志
public final static int Enum_DateTime=0x0001; //日期格式:YYYY-MM-DD HH:MM:SS
public final static int Enum_Time =0x0002; //日期格式:HH:MM:SS
public final static int Enum_Date =0x0003; //日期格式:YYYY-MM-DD
public final static String[] WEEK={"星期一","星期二","星期三","星期四","星期五","星期六","星期七",};
public final static String[] QUARTER={"第一季度","第二季度","第三季度","第四季度"};
private int m_Year; //年
private int m_Month; //月
private int m_Day; //日
private int m_Hour; //时
private int m_Minutes; //分
private int m_Seconds; //秒

public JDate()
{
this.setDate(0,0,0,0,0,0);
}
//取当前计算机时间
public static JDate GetCurrentTime()
{
JDate currDate=new JDate();
Calendar calendar = new GregorianCalendar();
Date trialTime = new Date();
calendar.setTime(trialTime);
currDate.setYear(calendar.get(Calendar.YEAR));
currDate.setMonth(calendar.get(Calendar.MONTH)+1);
currDate.setDay(calendar.get(Calendar.DATE));
currDate.setHour(calendar.get(Calendar.HOUR_OF_DAY));
currDate.setMinutes(calendar.get(Calendar.MINUTE));
currDate.setSeconds(calendar.get(Calendar.SECOND));
return currDate;
}
public int getYear()
{
return m_Year;
}
public int getMonth()
{
return m_Month;
}
public int getDay()
{
return m_Day;
}
public int getHour()
{
return m_Hour;
}
public int getMinutes()
{
return m_Minutes;
}
public int getSeconds()
{
return this.m_Seconds;
}
public void setYear(int y)
{
m_Year=y;
}
public boolean setMonth(int m)
{
this.m_Month=m;
return m>=1&&m<=12;
}
public boolean setDay(int d)
{
this.m_Day=d;
return d<=this.calcCurrentMonthDay();
}
public boolean setHour(int h)
{
this.m_Hour=h;
return h>=0&&h<=24;
}
public boolean setMinutes(int m)
{
this.m_Minutes=m;
return m>=0&&m<=59;
}
public boolean setSeconds(int s)
{
this.m_Seconds=s;
return s>=0&&s<=59;
}
public void setDate(JDate date)
{
m_Year=date.getYear();
m_Month=date.getMonth();
m_Day = date.getDay();
m_Hour = date.getHour();
m_Minutes = date.getMinutes();
m_Seconds = date.getSeconds();
}
public void setDate(int Year,int Month,int Day,int Hour,int Minutes,int Seconds)
{
m_Year=Year;
m_Month = Month;
m_Day = Day;
m_Hour = Hour;
m_Minutes = Minutes;
m_Seconds = Seconds;
}
//计算当月的天数
public int calcCurrentMonthDay()
{
if(m_Month==2)
{
return (((m_Year%4==0)&&(m_Year%100!=0))||(m_Year%400==0))?29:28;
}
else if(m_Month<=7&&m_Month!=2)
{
return m_Month%2==0?30:31;
}
else
{
return m_Month%2==0?31:30;
}
}
//计算到当年的零点的秒数
public int CalcSecondsInDate()
{
int sum=0;
for(int i=1;i<getMonth();i++)
{
if(i==2)
sum+=(((getYear()%4==0)&&(getYear()%100!=0))||(getYear()%400==0))?29:28;
else if((i<=7)&&(i!=2))
sum+=(i%2==0)?30:31;
else if(i>=8&&i!=2)
sum+=(i%2==0)?31:30;
}
sum=sum+getDay()-1;
sum=sum*24*3600;
sum=sum+3600*getHour()+60*getMinutes()+getSeconds();
return sum;
}
shipp 2003-09-15
  • 打赏
  • 举报
回复
to_date()是oracle中的字符串转时期格式吧,


java中用SimpleDateFormat类格式化,,


构造函数的参数就是格式字符串.

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧