SampleDateFormat进行日期格式化

我们生成的日期 ,可能不是我们想要的格式,这时候,就要用到SampleDateFormat类的format方法转换一下,

SampleDateFormat是java.text包下的一个常用日期类

这个常用类的常用方法,我们经常会用到2个

parse(String text, ParsePosition pos)
          解析字符串的文本,生成 Date

format(Date date, StringBuffer toAppendTo, FieldPosition pos)
          将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer

实例:录入会员的生日时,形式必须是"月/日",如"09/12";录入的密码必须在6~10位,允许用户重复录入,直到输入正确为止

代码如下:

//用户类
package changyonglei.homework;
/**
 * 录入会员的生日时,形式必须是"月/日",如"09/12";录入的密码必须在6~10位,允许用户重复录入,直到输入正确为止
 */
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Vip{
    private String vipdate;//会员生日
    private String password;//会员密码
    public Vip() {
    }
    public Vip(String vipdate, String password) {
        this.vipdate = vipdate;
        this.password = password;
    }
    public String getVipdate() {
        return vipdate;
    }
    public void setVipdate(String vipdate)  {
        //指定格式
        SimpleDateFormat date=new SimpleDateFormat("MM/DD");
        try{
            Date date1 =date.parse(vipdate);//解释字符串的文本,生成date
            date.format(date1);//将给定的 Date 格式化为我们定义的日期/时间字符串
            this.vipdate=vipdate;
        }catch(Exception e){
            System.err.println("日期格式输入有误!");
        }
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        if(password.length()>=6 && password.length()<=10){
            this.password = password;
        }else{
            System.err.println("密码形式输入有误!");
        }
        
    }
    
}
//测试类
package changyonglei.homework;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * 对录入的信息进行有效性的验证
 * 录入会员的生日时,形式必须是"月/日",如"09/12";录入的密码必须在6~10位,允许用户重复录入,直到输入正确为止
 * @author 0
 *
 */
public class TestVip {
    public static void main(String[] args) throws ParseException {
        Scanner input=new Scanner(System.in);
        Vip vip=new Vip();
        String day;
        //进来先输入生日,如果为空,继续输入生日,如果不为空,则开始输入密码
        boolean flag;
        
        //进行会员生日验证
        do{
            System.out.println("请输入生日<MM/DD>:");
            day=input.next();
            vip.setVipdate(day);
            if(vip.getVipdate()!=null){
                //进行密码验证
                String pwd;
                do{
                    System.out.println("请输入密码:");
                    pwd=input.next();
                    vip.setPassword(pwd);
                }while(vip.getPassword()==null);
                flag=false;
            }else{
                flag=true;
            }
            //如果符合规则则会执行日期 转换,那么就能set进值,如果不符合规则,就是空,所以我们判断日期为空的时候继续循环
        }while(flag);
        
        System.out.println("程序结束!");
        
    }
}

结果:

原文地址:https://www.cnblogs.com/sincoolvip/p/5569362.html