【发布时间】:2017-06-06 06:16:37
【问题描述】:
我需要将时间从 GMT 转换为 PST,为此我试图从时间中减去 7 小时。问题是时间存储在字符串中,我不确定如何从字符串时间中减去 7 小时。 displayDateString 给了我日期和时间,它是一个字符串。我正在尝试以下方法,但它没有按我需要的方式工作。
代码更改之前
public static String formatDate(String strDate, String inputFormat, String outputFormat) {
Date date = convertStringToDate(strDate,inputFormat);
String displayDateString = formatDate(date, outputFormat);
DateFormat pstFormat = new SimpleDateFormat();
return displayDateString;
}
以上代码输出:06/02/17 07:19 PM
代码更改后
public static String formatDate(String strDate, String inputFormat, String outputFormat) {
Date date = convertStringToDate(strDate,inputFormat);
String displayDateString = formatDate(date, outputFormat);
DateFormat pstFormat = new SimpleDateFormat();
/*TimeZone pstZone = TimeZone.getTimeZone( "PST" );
pstFormat.setTimeZone( pstZone );
displayDateString = pstFormat.format(date);*/
Calendar cal = Calendar.getInstance();
cal = Calendar.getInstance();
cal.add( Calendar.HOUR, -7 );
displayDateString = pstFormat.format( cal.getTime() );
return displayDateString;
}
public static Date convertStringToDate(String strDate, String inputFormat) {
SimpleDateFormat dateFormat = null;
Date date = null;
boolean formatChagned = false;
try {
if(!StringUtils.isSet(strDate)){
return date;
}
if(strDate.indexOf("/")>0 && inputFormat.indexOf("-")>=0){
inputFormat = inputFormat.replaceAll("-", "/");
formatChagned=true;
}else if (strDate.indexOf("-")>0 && inputFormat.indexOf("/")>=0){
inputFormat = inputFormat.replaceAll("/", "-");
formatChagned=true;
}
dateFormat = new SimpleDateFormat(inputFormat);
dateFormat.setLenient(false);
date = dateFormat.parse(strDate);
} catch (Exception exception) {
log.error("Given date to parse:"+strDate);
log.error("Given Input Date Format:"+inputFormat);
if(formatChagned){
log.error("Given Input Date Format is incorrcet and it is modified as :"+inputFormat);
}
log.error(exception);
log.error("DateUtil.convertStringToDate :Parse exception while parsing,"+strDate+" using format :"+inputFormat);
date = null;
}
return date;
}
我添加了日历部分以某种方式从现有时间中减去 7 小时。这不起作用。
【问题讨论】:
-
显示其他函数:
convertStringToDate、formatDate(2-arg 版本)。 -
仅供参考,“请不要标记它,因为我真的需要解决这个问题……”是标记标记的好方法。提出一个好问题的责任完全在于你,而不是读者原谅你的错误。
-
我已经编辑了我的问题。
标签: java