我們生成的日期 ,可能不是我們想要的格式,這時候,就要用到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("程序結束!"); } }
結果: