JAVA中⽇期格式转换
/**
* 字符串转换为java.util.Date<br>
* ⽀持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br>
* yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br>
* yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br>
* yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br>
* yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br>
* @param time String 字符串<br>
* @return Date ⽇期<br>
*/
public static Date stringToDate(String time){
SimpleDateFormat formatter;
int tempPos=time.indexOf("AD") ;string转date的方法
im() ;
formatter =new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");
if(tempPos>-1){
time=time.substring(0,tempPos)+
"公元"+time.substring(tempPos+"AD".length());//china
formatter =new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");
}
tempPos=time.indexOf("-");
if(tempPos>-1&&(time.indexOf("")<0)){
formatter =new SimpleDateFormat ("yyyyMMddHHmmssZ");
}
else if((time.indexOf("/")>-1) &&(time.indexOf("")>-1)){
formatter =new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
}
else if((time.indexOf("-")>-1) &&(time.indexOf("")>-1)){
formatter =new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
}
else if((time.indexOf("/")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){ formatter =new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");
}
else if((time.indexOf("-")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){ formatter =new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");
}
ParsePosition pos =new ParsePosition(0);
java.util.Date ctime = formatter.parse(time, pos);
return ctime;
}
/**
* 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24⼩时制)<br>
* 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>
* @param time Date ⽇期<br>
* @return String 字符串<br>
*/
public static String dateToString(Date time){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
String ctime = formatter.format(time);
return ctime;
}
/**
* 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12⼩时制)<br> * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>
* @param time Date ⽇期<br>
* @param x int 任意整数如:1<br>
* @return String 字符串<br>
*/
public static String dateToString(Date time,int x){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");
String ctime = formatter.format(time);
return ctime;
}
/**
*取系统当前时间:返回只值为如下形式
*2002-10-30 20:24:39
* @return String
*/
public static String Now(){
return dateToString(new Date());
}
/**
*取系统当前时间:返回只值为如下形式
*2002-10-30 08:28:56 下午
*@param hour 为任意整数
*@return String
*/
public static String Now(int hour){
return dateToString(new Date(),hour);
}
/**
*取系统当前时间:返回值为如下形式
*2002-10-30
*@return String
*/
public static String getYYYY_MM_DD(){
return dateToString(new Date()).substring(0,10);
}
/**
*取系统给定时间:返回值为如下形式
*2002-10-30
*@return String
*/
public static String getYYYY_MM_DD(String date){
return date.substring(0,10);
}
public static String getHour(){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("H");
String ctime = formatter.format(new Date());
return ctime;
}
public static String getDay(){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("d");
String ctime = formatter.format(new Date());
return ctime;
}
public static String getMonth(){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("M");
String ctime = formatter.format(new Date());
return ctime;
}
public static String getYear(){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("yyyy");
String ctime = formatter.format(new Date());
return ctime;
}
public static String getWeek(){
SimpleDateFormat formatter;
formatter =new SimpleDateFormat ("E");
String ctime = formatter.format(new Date());
return ctime;
}
在jsp页⾯中的⽇期格式和sqlserver中的⽇期格式不⼀样,怎样统⼀?
在页⾯上显⽰输出时,⽤下⾯的函数处理⼀下
public class DateUtil(){
public static String fmtShortEnu(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
String strDate = formatter.format(myDate);
return strDate;
}
}
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat("yyyy-MM-dd")
建议还是把sqlserver的字段类型改成varchar的吧,⽤字符串处理可以完全按照⾃⼰的意愿处理,没有特殊的需求,不要使⽤date型
字串⽇期格式转换
⽤的API是SimpleDateFormat,它是属於SimpleDateFormat,所以请记得import进来!
⽤法:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
这⼀⾏最重要,它确⽴了转换的格式,yyyy是完整的西元年,MM是⽉份,dd是⽇期, ⾄於HH:mm:ss就不需要我再解释了吧! ps:为什麽有的格式⼤写,有的格式⼩写,那是怕避免混淆,例如MM是⽉份,mm是分;HH是24⼩时制,⽽hh是12⼩时制
1.字串转⽇期:
2002-10-8 15:30:22要把它转成⽇期,可以⽤
Date date=sdf.parse("2002-10-8 15:30:22");
2.⽇期转字串
假如把今天的⽇期转成字串可⽤
String datestr=sdf.format(new Date());
这个字串的内容便类似2002-10-08 14:55:38
透过这个API我们便可以随⼼所欲的将⽇期转成我们想要的字串格式,例如希望将⽇期输出成2002年10⽉08⽇, 我们可以这麽写:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM⽉dd⽇");
String datestr=sdf.format(new Date());
datestr便会依照我们设定的格式输出
//对⽇期格式的转换成("yyyy-MM-dd")格式的⽅法
public java.sql.Date Convert(String str)
{
try
{
java.util.Date d = sdf.parse(str);
java.sql.Date d1 = new java.sql.Time());
return d1;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}
}
应⽤如下:
ctmt.setDate(7,this.ManBirth())); // @DATETIME
获得本⽉⼀⽇、本星期星期⼀、昨天的date对象的⽅法:(摘⾃: )
GregorianCalendar cal =new GregorianCalendar();
Date now =new Date();
cal.setTime(now);
cal.setFirstDayOfWeek(GregorianCalendar.MONDAY); // 设置⼀个星期的第⼀天为星期1,默认是星期⽇
SimpleDateFormat dateutil =new SimpleDateFormat( " yyyy-MM-dd " );
System.out.println( " now= "+ dateutil.Time())); // 今天
cal.add(GregorianCalendar.DATE, -1 );
System.out.println( " now= "+ dateutil.Time())); // 昨天
cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.MONDAY);
System.out.println( " now= "+ dateutil.Time())); // 本周1
cal.set(GregorianCalendar.DAY_OF_MONTH, 1 );
System.out.println( " now= "+ dateutil.Time())); // 本⽉1⽇
摘⾃:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论