我们生成的日期 ,可能不是我们想要的格式,这时候,就要用到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("程序结束!"); } }
结果:
时间: 2024-11-08 00:26:35