IT源码网

JAVA字符串转日期或日期转字符串

flyfish 2021年04月03日 程序员 420 0

用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,

用法: SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );

PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小

时制,而hh是12小时制。

1.字符串转日期

2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );

2.日期转字符串

假如把今天的日期转成字符串可用 String str = sdf.format(new Date());

这个字符串内容的格式类似2008-07-10 19:20:00。

透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2008

年7月10日,我们可以这么写:

        SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy年MM月dd日 " );

        String str = sdf.format(new Date());

        str便会依照我们设定的格式输出了。

附编写好的一个简单实例:

import java.util.Date; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
public class ConvertDemo { 
public static String DateToStr(Date date) { 
   
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
   String str = format.format(date); 
   return str; 
} 
public static Date StrToDate(String str) { 
   
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
   Date date = null; 
   try { 
    date = format.parse(str); 
   } catch (ParseException e) { 
    e.printStackTrace(); 
   } 
   return date; 
} 
 
public static void main(String[] args) { 
   
   Date date = new Date(); 
   System.out.println("日期转字符串:" + ConvertDemo.DateToStr(date)); 
   System.out.println("字符串转日期:" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date))); 
   
} 
} 

Java中日期格式转换

public static Date stringToDate(String time){ 
    SimpleDateFormat formatter; 
    int tempPos=time.indexOf("AD") ; 
    time=time.trim() ; 
    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; 
} 
 
public static String dateToString(Date time){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); 
    String ctime = formatter.format(time); 
    return ctime; 
} 
 
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; 
} 
public static String Now(){ 
    return dateToString(new Date()); 
} 
public static String Now(int hour){ 
    return dateToString(new Date(),hour); 
} 
 
public static String getYYYY_MM_DD(){ 
    return dateToString(new Date()).substring(0,10); 
} 
   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; 
    } 

日期比较:

在JAVA中日期的计算与比较可以使用Date和DateFormat来解决,下面是一段示例代码:

import java.text.*; 
import java.util.*; 
public class Test{ 
public static void main(String[] args){ 
try{ 
Date date=new Date(); 
DateFormat df=DateFormat.getDateTimeInstance(); 
String now=df.format(date); 
System.out.println("现在时间:"+now); 
System.out.println("现在时间是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00"))); 
} 
catch(ParseException e){System.out.print(e.getMessage()); 
} 
} 
} 

小例1:

   import java.text.ParseException; 
    import java.text.SimpleDateFormat; 
    import java.util.Date; 
    public class Text { 
    public static void main(String[] args){ 
           SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd"); 
           String d=dd.format(new Date()); 
           System.out.print(d); 
           try { 
               Date date=dd.parse("2007-12-12"); 
               System.out.println(date); 
           } catch (ParseException e) { 
             e.printStackTrace(); 
          } 
       } 
    } 

小例2:

如何获取当前时间?

 String now=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); 
   Date createDate=convertDate(now); //转换成Date型 
   //将字符串转换成日期型的方法; 
public Date convertDate(String planedDate){ 
   Date date=new Date(); 
   SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd"); 
     String d=dd.format(new Date()); 
     System.out.print(d); 
     try { 
         date=dd.parse(planedDate); 
     System.out.println(date); 
     } catch (ParseException e) { 
       e.printStackTrace(); 
       return null; 
     } 
     return date; 
}

小例3:

 如何获得系统的year,month,day?

    Calendar   c   =   Calendar.getInstance();   
    c.setTime(new java.util.Date());   
    int   year =   c.get(Calendar.YEAR);   
    int   month =   c.get(Calendar.MONTH)+1;   
    int   day   =   c.get(Calendar.DAY_OF_MONTH);   
    int   hour =   c.get(Calendar.HOUR_OF_DAY);   
    int   minute =   c.get(Calendar.MINUTE);   
    int   second =   c.get(Calendar.SECOND);

小例4:

JAVA中获得本地系统时间的方法

 import java.util.*; 
    public class D 
   { 
     public static void main(String []abc) 
    { 
      int y,m,d,h,mi,s; 
      Calendar cal=Calendar.getInstance(); 
      y=cal.get(Calendar.YEAR); 
      m=cal.get(Calendar.MONTH); 
      d=cal.get(Calendar.DATE); 
      h=cal.get(Calendar.HOUR_OF_DAY); 
      mi=cal.get(Calendar.MINUTE); 
      s=cal.get(Calendar.SECOND); 
      System.out.println("现在时刻是"+y+"年"+m+"月"+d+"日"+h+"时"+mi+"分"+s+"秒"); 
    } 
   } 
 
   public class Main{ 
     public static void main(String[] args) 
    { 
      java.util.Calendar c=java.util.Calendar.getInstance(); 
      java.text.SimpleDateFormat f=new java.text.SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒"); 
      System.out.println(f.format(c.getTime())); 
    } 
} 

小例5:

    1>先导入两个类java.util.*; java.text.*;

    2>加简单的一句话:

        String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance).getTime());

        date就是你得到的时间,显示格式可以根据("yyyy-MM-dd HH:mm:ss")的格式随意调整

小例6:

     在JSP页面上可以通过一下方法获取:

  function printDate() 
   { 
     var today=new Date(); 
     var day=today.getDate(); 
     var month=today.getMonth()+1; 
     var year=today.getFullYear().toString(); 
     var box1=document.stats.intoDate; 
     if((month/10)<1) 
     { 
         month=("0"+month).toString(); 
     } 
     if((day/10)<1) 
     { 
         day=("0"+today.getDate()).toString(); 
     } 
     box1.value=year+"-"+month+"-"+day; 
   } 

 

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!