完成字符串和时间对象的转化(DateFormat)(以及日历Calendar用法)
Posted ssxblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完成字符串和时间对象的转化(DateFormat)(以及日历Calendar用法)相关的知识,希望对你有一定的参考价值。
DateFormat 和 SimpleDateFormat
示例(时间格式的书写)
package cn.date; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test02 public static void main(String[] args) DateFormat d=new SimpleDateFormat("yyyy年-MM月-dd日 hh:mm:ss"); //设置时间格式 Date s=new Date(); //当前时间 String str=d.format(s); //将时间对象按照格式化字符串 ,转换为字符串 System.out.println(str); String str2="1998-5-20"; DateFormat dd=new SimpleDateFormat("yyyy-MM-dd"); try Date ss=dd.parse(str2); //将字符串解析为带有固定格式的字符串,并把它给Date对象。注意:格式要一致 System.out.println(ss); catch (ParseException e) // TODO Auto-generated catch block e.printStackTrace();
结果
Calendar (日历)(日期类)(日期加法)
示例
package cn.date; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TestClendar public static void main(String[] args) Calendar c=new GregorianCalendar(); //Calendar是抽象类,不能建对象,要用到他的子类。 c.set(2019, 7,15,18,07,36); //设置日期 Date d=c.getTime(); //得到设定日期 ,没有设值的话,返回当前时间。 // c.setTime(new Date()); System.out.println(d); // System.out.println(c.get(Calendar.YEAR)); //加法 c.add(Calendar.YEAR, 30); Date m=c.getTime(); System.out.println(m);
结果
可视化的日历 (挺有意思)
代码示例:
package cn.date; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; public class Visual public static void main(String[] args) System.out.println("请输入日期(按格式:2019-5-6):"); Scanner scanner=new Scanner(System.in); //输入日期,按格式 ------ System.in输入流 String temp=scanner.nextLine(); //返回输入的结果,给temp变量。 // String temp="2019-2-15"; 这是写死的 DateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd"); try Date d= dateformat.parse(temp); //将字符串解析为带有固定格式的字符串,并把它给Date对象。 Calendar calendar=new GregorianCalendar(); calendar.setTime(d); int day=calendar.get(Calendar.DATE); //获取到当前日期 15; // System.out.println(day); //打印 calendar.set(Calendar.DATE, 1); //把日期设成2019-2-1,接着查看他是第几天,从而确定它在日历中的位置 // System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); //打印查看2月1日是这周的第几天。6 表示星期五,则星期五为2月1号这一天 // System.out.println(calendar.getActualMaximum(Calendar.DATE)); //这个月的最多天数 int MaxDay=calendar.getActualMaximum(Calendar.DATE); //把天数提取出来 System.out.println("日\\t一\\t二\\t三\\t四\\t五\\t六"); for(int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++) //打印前面的空格,6的话前面要打印5个空格 System.out.print("\\t"); //可视化日历 for(int i=1;i<=MaxDay;i++) if(i==day) System.out.print("*"); //如果打印到当天就打印个星星“*” System.out.print(i+"\\t"); int w=calendar.get(Calendar.DAY_OF_WEEK); //得到2019-2-2是这周的第几天 if(w==Calendar.SATURDAY) //如果是这周的第七天,也就是周六,则换行。 System.out.print("\\n"); calendar.add(Calendar.DATE, 1); //日期加一,变为2019-2-2; catch (ParseException e) // TODO Auto-generated catch block e.printStackTrace();
打印结果
以上是关于完成字符串和时间对象的转化(DateFormat)(以及日历Calendar用法)的主要内容,如果未能解决你的问题,请参考以下文章
类DateFormat(子类SimpleDateFormat)