| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1263 人关注过本帖
标题:[求助]日期格式化问题,我写完了,可是还有点小问题,帮忙看下
只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:14 
[求助]日期格式化问题,我写完了,可是还有点小问题,帮忙看下
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

class TestDateFormat
{
int year;
int date;
String month;
String week;
String temp;
String tempYear;
String tempDate;
Date aDate;
SimpleDateFormat dateFormat=null;
TestDateFormat(String temp)
{
this.temp=temp;
this.check();
}
TestDateFormat()
{
temp=this.systemIn();
this.check();
}
public void check() //通过检索字符,为年月日初始化
{
if(temp.indexOf("/")!=-1) //第一种格式,为年月日初始化 即MM/dd/yyyy型
{
month=temp.substring(0, temp.indexOf("/"));
tempDate=temp.substring(temp.indexOf("/")+1,temp.indexOf("/", temp.indexOf("/")+1));
date=Integer.parseInt(tempDate);
tempYear=temp.substring(temp.indexOf("/", temp.indexOf("/")+1)+1,temp.length());
year=Integer.parseInt(tempYear);
if(year<1800||year>2100)
{
System.out.println("输入年限超出范围,请重新输入");
this.systemIn();
}
}
else if(temp.indexOf(" ")!=-1&&temp.indexOf(",")!=-1) //第二种格式 即MM dd,yyyy型
{
month=temp.substring(0,temp.indexOf(" "));
tempDate=temp.substring(temp.indexOf(" ")+1,temp.indexOf(","));
date=Integer.parseInt(tempDate);
tempYear=temp.substring(temp.indexOf(","), temp.length());
year=Integer.parseInt(tempYear);
if(year<1800||year>2100)
{
System.out.println("输入年限超出范围,请重新输入");
this.systemIn();
}
}
}
public String systemIn() //键盘输入字符串
{
String s="";
System.out.println("请输入:\n 如:3/18/2007");
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e)
{
System.out.println("产生异常");
}
System.out.println("你输入的字符串是"+s);
return s;
}
public String stringFormat() //符合Date要求的字符串
{
return tempYear+"-"+month+"-"+tempDate;
}
public Date dateFormat() //将字符串转化为Date对象
{
SimpleDateFormat df = new SimpleDateFormat("d-MMM-yyyy", Locale.ENGLISH);
try
{
aDate = df.parse(this.stringFormat());
}
catch (ParseException e)
{
e.printStackTrace();
}
return aDate;
}
public String toString()
{
dateFormat = new SimpleDateFormat("MM dd,yyyy,E");
return "输出:"+dateFormat.format(aDate).toString();
}

}

public class Bh
{
public static void main(String[] args)
{
TestDateFormat temp=new TestDateFormat();
System.out.println(temp.toString());
}

}

搜索更多相关主题的帖子: 格式化 
2007-07-13 13:24
heilong
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:777
专家分:0
注 册:2007-6-7
收藏
得分:0 
TestDateFormat(String temp)
{
this.temp=temp;
this.check();
}
这个构造函数有什么用啊?好像没用到吗?

风水鸡蛋壳,财去人安乐!----->
2007-07-13 15:54
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
以下是引用heilong在2007-7-13 15:54:48的发言:
TestDateFormat(String temp)
{
this.temp=temp;
this.check();
}
这个构造函数有什么用啊?好像没用到吗?

是,这是备用的,不影响程序的!


骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 10:02
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
没人回答偶啊?!

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 12:10
myfor
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:357
专家分:6
注 册:2006-3-13
收藏
得分:0 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

class TestDateFormat
{
int year;
int date;
String month;
String week;
String temp;
String tempYear;
String tempDate;
Date aDate;
SimpleDateFormat dateFormat=null;
TestDateFormat(String temp)
{
this.temp=temp;
this.check();
}
TestDateFormat()
{
temp=this.systemIn();
this.check();
}
public void check() //通过检索字符,为年月日初始化
{
if(temp.indexOf("/")!=-1) //第一种格式,为年月日初始化 即MM/dd/yyyy型
{
month=temp.substring(0, temp.indexOf("/"));
tempDate=temp.substring(temp.indexOf("/")+1,temp.indexOf("/", temp.indexOf("/")+1));
date=Integer.parseInt(tempDate);
tempYear=temp.substring(temp.indexOf("/", temp.indexOf("/")+1)+1,temp.length());
year=Integer.parseInt(tempYear);
if(year<1800||year>2100)
{
System.out.println("输入年限超出范围,请重新输入");
this.systemIn();
}
}
else if(temp.indexOf(" ")!=-1&&temp.indexOf(",")!=-1) //第二种格式 即MM dd,yyyy型
{
month=temp.substring(0,temp.indexOf(" "));
tempDate=temp.substring(temp.indexOf(" ")+1,temp.indexOf(","));
date=Integer.parseInt(tempDate);
tempYear=temp.substring(temp.indexOf(","), temp.length());
year=Integer.parseInt(tempYear);
if(year<1800||year>2100)
{
System.out.println("输入年限超出范围,请重新输入");
this.systemIn();
}
}
}
public String systemIn() //键盘输入字符串
{
String s="";
System.out.println("请输入:\n 如:3/18/2007");
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e)
{
System.out.println("产生异常");
}
System.out.println("你输入的字符串是"+s);
return s;
}
public String stringFormat() //符合Date要求的字符串
{
return tempYear+"-"+month+"-"+tempDate;
}
public Date dateFormat() //将字符串转化为Date对象
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
try
{
aDate = df.parse(this.stringFormat());
}
catch (ParseException e)
{
e.printStackTrace();
}
return aDate;
}
public String toString()
{
dateFormat = new SimpleDateFormat("MM dd,yyyy,E");
return "输出:"+dateFormat.format(dateFormat()).toString();
}

}

public class Bh
{
public static void main(String[] args)
{
TestDateFormat temp=new TestDateFormat();
System.out.println(temp.toString());
}

}


广告位招租
2007-07-14 12:34
myfor
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:357
专家分:6
注 册:2006-3-13
收藏
得分:0 
toString()里面的aDate还未实例化
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);里面的格式要和
tempYear+"-"+month+"-"+tempDate;的格式一致

广告位招租
2007-07-14 12:36
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
以下是引用myfor在2007-7-14 12:36:12的发言:
toString()里面的aDate还未实例化
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);里面的格式要和
tempYear+"-"+month+"-"+tempDate;的格式一致

能再具体点吗?!
格式怎么不一致了?
我认为是一致的呀


骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 12:43
myfor
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:357
专家分:6
注 册:2006-3-13
收藏
得分:0 
你的程序里面是
SimpleDateFormat df = new SimpleDateFormat("d-MMM-yyyy", Locale.ENGLISH);
是日-月-年的顺序
但是tempYear+"-"+month+"-"+tempDate
是年-月-日的顺序

广告位招租
2007-07-14 12:50
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
有吗?
我看看哈!

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 12:59
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
以下是引用myfor在2007-7-14 12:50:01的发言:
你的程序里面是
SimpleDateFormat df = new SimpleDateFormat("d-MMM-yyyy", Locale.ENGLISH);
是日-月-年的顺序
但是tempYear+"-"+month+"-"+tempDate
是年-月-日的顺序

啊啊啊啊.大姐,我要请你吃饭!


骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 13:01
快速回复:[求助]日期格式化问题,我写完了,可是还有点小问题,帮忙看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063926 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved