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

你为什么要写得这个复杂呢

import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Bh {
private String s = "";
private int year = 0;
private int month = 0;
private int day = 0;
private Date date;
public static void main(String []args)
{
new Bh();
}
Bh()
{
dosth();
}

private void dosth() {
while(!s.matches("^\\d{1,2}\\/\\d{1,4}\\/\\d{4}$")&&!s.matches("^\\d{1,2}[ ]\\d{1,4},\\d{4}$")){
if(s!="")
System.out.println("Format Error.");
inputDate();
}
if(s.matches("^\\d{1,2}\\/\\d{1,4}\\/\\d{4}$"))
{
String []element = s.split("\\/");
day = Integer.parseInt(element[0]);
month = Integer.parseInt(element[1]);
year = Integer.parseInt(element[2]);
}else
{
day = Integer.parseInt(s.split(" ")[0]);
month = Integer.parseInt(s.split(" ")[1].split(",")[0]);
year = Integer.parseInt(s.split(" ")[1].split(",")[1]);
}
if(year<1800||year>2100)
{
System.out.println("输入年限超出范围,请重新输入。");
s = "";
dosth();
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
try {
date = df.parse(year+"-"+month+"-"+day);
} catch (ParseException e) {
System.out.println("Error");
}
SimpleDateFormat sd = new SimpleDateFormat("MM dd,yyyy,E");
System.out.println("输出:"+sd.format(date).toString());
System.exit(0);
}
private void inputDate()
{
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);
}
}

[此贴子已经被作者于2007-7-14 13:37:56编辑过]


广告位招租
2007-07-14 13:03
大嘴先生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.048779 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved