完成字符串和时间对象的转化(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用法)的主要内容,如果未能解决你的问题,请参考以下文章

Java——DateFormat

API--DateFormat-字符串和日期对象之间的转换

DateFormat类概述

类DateFormat(子类SimpleDateFormat)

抽象类DateFormat及子类SimpleDateFormat

DateFormat的使用方法有哪些?