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("程序結束!");
        
    }
}

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM