| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1263 人关注过本帖
标题:[求助]日期格式化问题,我写完了,可是还有点小问题,帮忙看下
取消只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:9 
[求助]日期格式化问题,我写完了,可是还有点小问题,帮忙看下
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
大嘴先生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
大嘴先生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
大嘴先生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
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
居然是这样!~~~~~~~~
5555555555555555555555555555555555
找了2天了!

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 13:01
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
尽管我只花30分钟就写出来了
还以为我写的问题多多呢
谢谢拉!

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

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-14 16:44
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分: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;


public 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(" "));
month=this.formatMonth(month);
tempDate=temp.substring(temp.indexOf(" ")+1,temp.indexOf(","));
date=Integer.parseInt(tempDate);
tempYear=temp.substring(temp.indexOf(",")+1, 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月/日/年\n 如:3/18/2007\n或者\nFeb 28, 2000");
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("MMM dd,yyyy,E",Locale.ENGLISH);
return "输出格式为:"+dateFormat.format(this.dateFormat()).toString();
}
private String formatMonth(String month)
{
if(month.equals("Jan"))
return "1";
if(month.equals("Feb"))
return "2";
if(month.equals("Mar"))
return "3";
if(month.equals("Apr"))
return "4";
if(month.equals("May"))
return "5";
if(month.equals("Jun"))
return "6";
if(month.equals("Jul"))
return "7";
if(month.equals("Aug"))
return "8";
if(month.equals("Sep"))
return "9";
if(month.equals("Oct"))
return "10";
if(month.equals("Nov"))
return "11";
if(month.equals("Dec"))
return "12";
else
return null;
}
}


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



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

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