急问关于Date的一个问题(在线等)

unlock_2000 北京金软瑞彩科技发展有限公司 技术总监  2004-08-23 10:08:18
我现在有表示年月日时间的字符串,分别为mon ,day ,time , year
我是这么生成一个Date对象的,
String theDateString = mon + " " + day + " " + time + " " + year;
Date theDate = new Date(theDateString);
但这么方法是被推荐不使用的,我看了它推荐使用的方法,是使用DateFormat对象的parse方法,但它需要特别的针对locale的格式。

一位大侠指点说用
GregorianCalendar
da = new GregorianCalendar(2004, 12, 30, 12, 19, 59);(年,月,日,小时,分钟,秒)
Date time = da.getTime();

可是我得到的month为类似于Aug , Jun之类的值,我怎么变成整数呢?

我的这四个字符串是在redhat下用ls -l --full-time命令得到的。类似于这种形式:
"Aug 12 12:34:35 2004" .

请大家指教






...全文
116 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zncn2 2004-08-24
import java.text.*;
import java.util.*;

public class TestDateFormat {
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("MMM dd HH:mm:ss yyyy", Locale.US);
Date d = null;
try {
d = format.parse("Aug 12 12:34:35 2004");
}
catch (ParseException ex) {
System.out.println(ex);
}
System.out.println(d);
}
}


/* 输出结果

Thu Aug 12 12:34:35 CST 2004


*/
回复
unlock_2000 2004-08-24
请大家帮帮忙,没人遇过这种情况吗?
回复
alpha15 2004-08-24
up
回复
zncn2 2004-08-24
构造SimpleDateFormat时传入Locale.US,是强制转成美国的日期格式,这样一来月份的合法文字是“Jan”、“Feb”、“May”等等,否则会认为是中国的日期格式,也就是说月份的合法文字是“一月”、“二月”、“三月”等等。所以如果不传入Locale信息做格式化时会出错
回复
unlock_2000 2004-08-23
楼上几位,我试了一下,parse函数扔异常啊?你们试过吗?
回复
Frank1982 2004-08-23
只是对你的问题的回答:
switch(String){
case………………
case………………
……………………
}
进行转换
回复
sbdx 2004-08-23
import java.util.Date;
import java.awt.*;

public class DateExample extends java.applet.Applet
{
Date nowtime=new Date();
String datetmp;
String s;
public void init()
{
s=getParameter("text");
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("MMM d HH:mm:ss yyyy");
datetmp = sdf.format(nowtime);
}

public void paint(Graphics g)
{
g.setColor(Color.blue);
g.drawString(s + nowtime.toString(),30,30);
g.drawString(datetmp.toString(),30,50);
}
}
回复
zncn2 2004-08-23
如果你的日期的单字形式为05而不是5
那应该传入MMM dd HH:mm:ss yyyy
回复
zncn2 2004-08-23
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("MMM d HH:mm:ss yyyy");

Date date = sdf.parse("Aug 12 12:34:35 2004");
回复
发动态
发帖子
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
社区公告
暂无公告