格式化数组元素

时间:2013-06-19 16:44:07

标签: java arrays date generics format

这是场景。用户输入3种输入:

1/1/2013 12:00:00 AM_5/31/2013 12:00:00 AM
1/1/2013 12:00:00 AM_
_5/31/2013 12:00:00 AM

输入用于日期范围查询。

第一个输入:由_分隔符拆分:分为开始日期和结束日期。

第二个输入:由_分隔符分割:输入只是开始日期。

第三个输入:由_分隔符分割:输入只是结束日期。

输入由通用返回类型

检索
String dbFormat = AppConstant.DB_DATE_FORMAT;
String format = AppConstant.DATE_FORMAT;
SimpleDateFormat df = new SimpleDateFormat(format);
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String dates[] = searchValue.split("_", -1);
String start = "".equals(dates[0]) ? df.format(new Date(0L)) : dates[0];
String end = "".equals(dates[1]) ? df.format(new Date()) : dates[1];
filters.add(String.format("%s between to_date('%s', '%s') and to_date('%s', '%s')", columnKey, start, dbFormat, end, dbFormat));

我需要帮助的部分是,变量start和end的日期应该是UTC格式。正如你们所看到的,我设法转换了新的Date(0L)new Date()到UTC格式。 但我似乎无法将dates[0]dates[1]格式化为UTC。

如何将dates[0]dates[1]转换为UTC时间格式?可以在同一行中完成。

我试过了df.format(dates[0]),但它没有用。

我很抱歉,如果我听起来像个傻瓜,但我是java的新手,我每天都在学习。

提前多多谢谢。

1 个答案:

答案 0 :(得分:1)

使用新parse上的SimpleDateFormat函数(使用格式MM/dd/yyyy hh:mm:ss a)将这些字符串输入日期解析为不同的格式,这将为您提供Date传递给format已经拥有的SimpleDateFormat

String dbFormat = AppConstant.DB_DATE_FORMAT;
String format = AppConstant.DATE_FORMAT;
SimpleDateFormat df = new SimpleDateFormat(format);
SimpleDateFormat df2 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String dates[] = searchValue.split("_", -1);
String start = "".equals(dates[0]) ? df.format(new Date(0L)) : df.format(df2.parse(dates[0]));
String end = "".equals(dates[1]) ? df.format(new Date()) : df.format(df2.parse(dates[1]));
filters.add(String.format("%s between to_date('%s', '%s') and to_date('%s', '%s')", columnKey, start, dbFormat, end, dbFormat))