黑马程序员技术交流社区
标题:
关于Date类
[打印本页]
作者:
曹文涛
时间:
2011-9-3 13:51
标题:
关于Date类
Input类:
[code=java]import java.io.* ;
import java.util.* ;
import java.text.* ;
public class InputData{
BufferedReader buf = null;
public InputData(){
this.buf = new BufferedReader(new InputStreamReader(System.in));
}
private String getString(String info){
String temp = null;
System.out.print(info);
try
{
temp = this.buf.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
return temp;
}
public int getInt(String info,String err){
int temp = 0 ;
boolean flag = true ;
String str = null ;
while (flag){
str = this.getString(info);
if(str.matches("^\\d+$")){
temp = Integer.parseInt(str);
flag = false;
}else{
System.out.println(err);
}
}
return temp;
}
public Date getDate(String info,String err){
Date temp = null ;
boolean flag = true ;
String str = null ;
while (flag){
str = this.getString(info);
if(str.matches("^\\d{4}-\\d{2}-\\d{2}$")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try{
temp = sdf.parse(str); //解析字符串的文本,生成 Date。将字符转为日期
}catch(Exception e){
e.printStackTrace();
}
flag = false;
}else{
System.out.println(err);
}
}
return temp;
}
public float getFloat(String info,String err){
float temp = 0 ;
boolean flag = true ;
String str = null ;
while (flag){
str = this.getString(info);
if(str.matches("^\\d+.?\\d+$")){
temp = Float.parseFloat(str);
flag = false;
}else{
System.out.println(err);
}
}
return temp;
}
}[/code]
主类完成键盘输入日期按yyyy-MM-dd格 但最后也想按此格式输出 第10句应该怎么写 我这样写 提示找不到符号
[code=java]import java.io.* ;
import java.text.* ;
import java.util.* ;
public class ExecDemo03{
public static void main(String args[]){
Date str = null ;
SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
InputData Input = new InputData();
str = Input.getDate("请输入日期,格式为yyyy-mm-dd:","输入错误,请重新输入!");
System.out.print("输入的日期为:" + dft.format.(str));
}
}[/code]
作者:
匿名
时间:
2011-9-3 15:42
dft.format.(str) //没时间帮你做实验了,没这种写法把,format方法也不是这么用的吧
作者:
匿名
时间:
2011-9-3 15:44
标题:
回复 楼主 的帖子
dft.format.(str)这里多了一个点,改为dft.format(str)就好了
作者:
匿名
时间:
2011-9-3 17:10
需要修改两处:
1:将public class InputData中的public 去掉;
2:将dft.format.(str)改为dft.format(str);
运行结果如下:
请输入日期,格式为yyyy-mm-dd:2011-02-28
输入的日期为:2011-02-28
作者:
匿名
时间:
2011-9-3 20:11
谢谢 还真是多个点 没点了 就OK了
作者:
匿名
时间:
2011-9-3 23:03
中午大概看了SimpleDateFormat
format(Date date, StringBuffer toAppendTo, FieldPosition pos)
以为你可能用错了
作者:
匿名
时间:
2011-9-3 23:07
刚才看了下原来format(str)是调用父类父类的方法
java.lang.Object
j[color=Red]ava.text.Format[/color] [color=Green] //format(Object obj)[/color]
java.text.DateFormat
java.text.SimpleDateFormat
刚才不小按了enter+ctrl,结果一条回复成两条了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2