日期:2014-05-20  浏览次数:20773 次

java 字符串截取日期
想将一段字符串中的日期提取出来,按格式“yyyy-MM-dd”打印出来
代码如下
public class Test1
{
public static void main(String[] args) throws ParseException
{
String s = "6 20 0 0 8 4 0 8 4 3a 79 24 d6 4e 3  time =  Tue Aug 13 10:40:29 CST 2012";
String[] a = s.split("time =  ");
for (String as :a) System.out.println(as);

String da = a[1];
System.out.println(a[1]);

Date daw = new Date(da); 
System.out.println(daw);
SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd");
String aa = ss.format(daw);
System.out.println(aa);
}
}


运行的结果

6 20 0 0 8 4 0 8 4 3a 79 24 d6 4e 3  
Tue Aug 13 10:40:29 CST 2012
Tue Aug 13 10:40:29 CST 2012
Tue Aug 14 00:40:29 CST 2012
2012-08-14


为什么获取的时间是错误的呢?
Java date simpledateformat 字符串截取

------解决方案--------------------
 Date daw = new Date(da);这种写法是deprecated , 看了一下这个写法如果你的字符串中包含时区信息的话就用这个时区,没有时区的话用default zone
应该是时区的问题
换成SimpleDateFormat
------解决方案--------------------
引用:
Quote: 引用:

楼主
2012年8月13日是星期一吧
你字符串中怎么是星期二呢


好细心啊,一开始忽略了时区的影响,本想在同一地区同台电脑没影响的;没条理的乱测试:就我日历里将星期后移了一天。(菜鸟勿喷啊)


时区真是个让人蛋疼的东西呀!