主题 : 发表文*时,文*的发表时间变成当天的00:00:00
级别: 童生
UID: 6287
积分:23 加为好友
威望: 0 精华: 0
主题:1 回复:11
注册时间:2010-05-01
在线时长:0
1#   发表于:2010-05-21 06:52:31  IP:125.83.*.*
如题,相信这这个BUG不是第一次被反映,我在别人提出这个问题后再一次提出来,是因为我认为这个BUG对于你们这么厉害的技术人员来说并不难解决,但是这个BUG对于系统的使用来说非常不方便,因为这个BUG会影响文章正常的排序。
        打个比方,当天发了3篇文章,而这3篇文章发布时间都是当天的00:00,在“最新资讯”显示的顺序就会变成这样:最先发布的显示在最前面,而不是越新发布的排在最前面,这个是已经完全影响了正常的使用。
        希望版主看到以后,能抽出一点小时间,修复一下,不要说“这个问题确实存在,会在后续版本中修复”了,我认为对于你们的技术人员来说这个不是什么要费太大时间修复的BUG,只需要你们抽出一点点时间。之前你们发是样板的文章新闻时间显示反而是正常的,有点奇怪,是授权用户才帮助解决这个问题吗?
        能明白现在你们工作重点可能全在3.0上,可是也希望你们能解决一下,谢谢了。这个是好几个用户的呼声
korven,胡主席说不折腾
级别: 白丁
UID: 3
积分:2415 加为好友
威望: 0 精华: 0
主题:23 回复:1614
注册时间:2009-06-02
在线时长:0
2#   发表于:2010-05-22 14:06:46  IP:59.245.*.*
需要修改
com.jeecms.common.struts2.SimpleDateConverter.java


源码如下:

package com.jeecms.common.struts2;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.struts2.util.StrutsTypeConverter;

public class SimpleDateConverter extends StrutsTypeConverter {
public static final DateFormat SHORT_DF = new SimpleDateFormat("yyyy-MM-dd");
public static final DateFormat LONG_DF = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");

@Override
@SuppressWarnings("unchecked")
public Object convertFromString(Map context, String[] values, Class toClass) {
String s = values[0];
if (StringUtils.isBlank(s)) {
return null;
}
try {
if (s.length() > 10) {
return new java.sql.Timestamp(LONG_DF.parse(s).getTime());
} else {
return new java.sql.Date(SHORT_DF.parse(s).getTime());
}
} catch (ParseException e) {
return null;
}
}

@Override
@SuppressWarnings("unchecked")
public String convertToString(Map context, Object o) {
Date date = (Date) o;
if (o instanceof java.sql.Timestamp) {
return LONG_DF.format(date);
} else {
return SHORT_DF.format(date);
}
}

}

编译后覆盖对应的class文件就行了
生命在于折腾!
级别: 童生
UID: 6287
积分:23 加为好友
威望: 0 精华: 0
主题:1 回复:11
注册时间:2010-05-01
在线时长:0
3#   发表于:2010-05-24 00:49:04  IP:125.95.*.*
谢谢korven这么耐心的回复
korven,胡主席说不折腾
级别: 白丁
UID: 8745
积分:1 加为好友
威望: 0 精华: 0
主题:0 回复:1
注册时间:2010-07-06
在线时长:0
4#   发表于:2010-09-01 16:24:13  IP:125.65.*.*
回答是回答了
但是还是不会用
级别: 白丁
UID: 12557
积分:4 加为好友
威望: 0 精华: 0
主题:0 回复:4
注册时间:2010-11-16
在线时长:0
5#   发表于:2010-11-19 14:24:06  IP:183.176.*.*
可以这么操作,下面是我更改后做过测试。与大家分享:
package com.jeecms.common.struts2;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class SimpleDateConverter extends StrutsTypeConverter {
public static final DateFormat SHORT_DF = new SimpleDateFormat("yyyy-MM-dd"); 
public static final DateFormat LONG_DF = new SimpleDateFormat( 
"yyyy-MM-dd HH:mm:ss"); 
@Override
@SuppressWarnings("unchecked")
public Object convertFromString(Map context, String[] values, Class toClass) {
String s = values[0];
Date date = null;
ParseException e = null;
try { 
if (s.length() > 10) { 
date=new java.sql.Timestamp(LONG_DF.parse(s).getTime()); 
} else { 
date=new java.sql.Date(SHORT_DF.parse(s).getTime()); 
 } 
} catch (ParseException ex) { 
ex.printStackTrace();
    date=null;


if (date == null) {
new RuntimeException("Could not parse date", e);
}
return date;
}

@Override
@SuppressWarnings("unchecked")
public String convertToString(Map context, Object o) {
Date date = (Date) o; 
if (o instanceof java.sql.Timestamp) { 
return LONG_DF.format(date); 
} else { 
return SHORT_DF.format(date); 



}

}
1 共1页