我们生成的日期 ,可能不是我们想要的格式,这时候,就要用到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位,允许用户重复录入,直到输入正确为止

代码如下:

  1. //用户类
  2. package changyonglei.homework;
  3. /**
  4. * 录入会员的生日时,形式必须是"月/日",如"09/12";录入的密码必须在6~10位,允许用户重复录入,直到输入正确为止
  5. */
  6. import java.text.ParseException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9.  
  10. public class Vip{
  11. private String vipdate;//会员生日
  12. private String password;//会员密码
  13. public Vip() {
  14. }
  15. public Vip(String vipdate, String password) {
  16. this.vipdate = vipdate;
  17. this.password = password;
  18. }
  19. public String getVipdate() {
  20. return vipdate;
  21. }
  22. public void setVipdate(String vipdate) {
  23. //指定格式
  24. SimpleDateFormat date=new SimpleDateFormat("MM/DD");
  25. try{
  26. Date date1 =date.parse(vipdate);//解释字符串的文本,生成date
  27. date.format(date1);//将给定的 Date 格式化为我们定义的日期/时间字符串
  28. this.vipdate=vipdate;
  29. }catch(Exception e){
  30. System.err.println("日期格式输入有误!");
  31. }
  32. }
  33. public String getPassword() {
  34. return password;
  35. }
  36. public void setPassword(String password) {
  37. if(password.length()>=6 && password.length()<=10){
  38. this.password = password;
  39. }else{
  40. System.err.println("密码形式输入有误!");
  41. }
  42.  
  43. }
  44.  
  45. }
  46. //测试类
  47. package changyonglei.homework;
  48.  
  49. import java.text.ParseException;
  50. import java.text.SimpleDateFormat;
  51. import java.util.Date;
  52. import java.util.Scanner;
  53.  
  54. /**
  55. * 对录入的信息进行有效性的验证
  56. * 录入会员的生日时,形式必须是"月/日",如"09/12";录入的密码必须在6~10位,允许用户重复录入,直到输入正确为止
  57. * @author 0
  58. *
  59. */
  60. public class TestVip {
  61. public static void main(String[] args) throws ParseException {
  62. Scanner input=new Scanner(System.in);
  63. Vip vip=new Vip();
  64. String day;
  65. //进来先输入生日,如果为空,继续输入生日,如果不为空,则开始输入密码
  66. boolean flag;
  67.  
  68. //进行会员生日验证
  69. do{
  70. System.out.println("请输入生日<MM/DD>:");
  71. day=input.next();
  72. vip.setVipdate(day);
  73. if(vip.getVipdate()!=null){
  74. //进行密码验证
  75. String pwd;
  76. do{
  77. System.out.println("请输入密码:");
  78. pwd=input.next();
  79. vip.setPassword(pwd);
  80. }while(vip.getPassword()==null);
  81. flag=false;
  82. }else{
  83. flag=true;
  84. }
  85. //如果符合规则则会执行日期 转换,那么就能set进值,如果不符合规则,就是空,所以我们判断日期为空的时候继续循环
  86. }while(flag);
  87.  
  88. System.out.println("程序结束!");
  89.  
  90. }
  91. }

结果:

SampleDateFormat进行日期格式化的更多相关文章

  1. C# DateTime日期格式化

    在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...

  2. Json.net日期格式化

    1. 全局设置,可以在App_Global中配置 JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert. ...

  3. 分享自己写的JS版日期格式化和解析工具类,绝对好用!

    前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, ...

  4. Oracle 英文 非标准格式 日期 格式化

    最近在处理一张表的时候,需要按照日期排序,日期字段中日期的格式有两种. 格式一:07-Aug-2015 格式二:10/28/16 日期转化及格式化sql语句: select to_date('07-A ...

  5. Sql Server 日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVE ...

  6. django 过滤器、日日期格式化参数

    转载:http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格 ...

  7. 161226、js日期格式化

    JavaScript Date format(js日期格式化) 方法一:// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季 ...

  8. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

  9. SQL Server中的日期格式化

    SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate()    2004-09-12 11:06:08 ...

随机推荐

  1. [BZOJ1193][HNOI2006]马步距离(贪心+dfs)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1193 分析: 首先小范围可以直接暴力.(其实只要用上题目中的表就行了) 如果范围比较大 ...

  2. N-gram模型

    n元语法      n-gram grammar     建立在马尔可夫模型上的一种概率语法.它通过对自然语言的符号串中n个符号同时出现概率的统计数据来推断句子的结构关系.当n=2时,称为二元语法,当 ...

  3. 用SpringMvc实现Excel导出功能

    以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...

  4. vi实战记录

    vi编辑器在Unix和Linux中比较早期的,Vim是vi的扩展集,是对vi的加强. 服务器最小化,默认集成vi编辑器!了解vi常用命令,工作起来颇有-洪荒之力!!! 01.关于退出 :wq!  -- ...

  5. java多态实现原理

    众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定.C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持 ...

  6. ViewPager

    1.ViewPager的功能为实现视图滑动 在主布局里边加入: <android.support.v4.view.ViewPager 这个组件,注意这个组件是用来显示左右滑动的界面的,如果不加载 ...

  7. iOS开发中的错误整理,百思项目'我的'模块,tableFooterViewHeight的问题.提醒自己对KVO和Block的运用欠缺

    一.错误分析:由于tableFooterView中的数据是通过请求服务器后得到的,tableFooterViewHeight也是根据请求过来的数据经过布局子控件而计算出来的.(注意:计算高度是在子线程 ...

  8. 【转】C#判断奇偶数的函数

    // 现代流行的"程序员" public static bool IsOdd(int n) { while (true) { switch (n) { : return true; ...

  9. Entity Framework Code First (二)Custom Conventions

    ---------------------------------------------------------------------------------------------------- ...

  10. 素数筛 uva 543

    给你一个n求出n由2个奇质因子的和  这2个因子差最大 没有就输出'Goldbach's conjecture is wrong. #include<stdio.h> #include&l ...