Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49977
  • 博文数量: 13
  • 博客积分: 378
  • 博客等级: 二等列兵
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-11 19:46
文章分类

全部博文(13)

文章存档

2011年(13)

我的朋友

分类: Java

2011-09-02 09:28:54

给定字符串:30/aug/2011:23:30:15想要转换成Java中的日期,以便进行日期相关的操作,在网上找到了如下代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Str2Date {
    static public void main(String[] args) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss");
        Date dt = sdf.parse("30/Aug/2011:23:30:15");
        System.out.println(dt);
    }  
}

可是在有些linux服务器上运行成功,但有些linux服务器下运行不成功,显示如下错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "30/aug/2011:23:30:15"
        at java.text.DateFormat.parse(DateFormat.java:357)
        at Str2Date.main(Str2Date.java:7)

查了一些资料,终于搞清楚了,跟JDK的版本有关系,SimpleDateFormat使用了java.util.TimeZone,在某些JDK中TimeZone可能不支持3个字母的月份,为了解决这个问题,必须显式地使用US locale。
修改后代码如下:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Str2Date {
    static public void main(String[] args) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss",Locale.US);
        Date dt = sdf.parse("30/aug/2011:23:30:15");
        System.out.println(dt);
    }
}
现在ok了。
******************************************************************************************
如果想要根据java的Date类得到给定日期属于星期几,小时等信息,可以使用java.util。Calendar,具体如下:
import java.text.SimpleDateFormat;
import java.util.*;
public class Str2Date {
    static public void main(String[] args) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss",Locale.US);
        Date dt = sdf.parse("27/aug/2011:00:30:15");
        System.out.println(dt);
      
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);
        int w = cal.get(Calendar.DAY_OF_WEEK); //周几,周日=1,周一=2...
        System.out.println(w);
        int hh = cal.get(Calendar.HOUR_OF_DAY);  //得到小时,此例子为0
        System.out.println(hh);
   } 
}
阅读(1255) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

mantlegen2011-09-02 15:44:46

学习了