2013-06-19 3 views
1

Вот сценарий. Пользователь вводит 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 

Вход для запроса диапазона дат.

1-й вход: Разделить разделителем: Разбивается на дату начала и дату окончания.

2-й вход: Разделить разделителем: ввод - это только дата начала.

Третий вход: Разделить на разделитель: ввод - это только конечная дата.

Input извлекается общий тип возвращаемого

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)); 

та часть, которая мне нужна помощь на есть, дата переменной начала и конца должны быть в UTC format.As вы, ребята, можете видеть, у меня есть удалось преобразовать новые Date(0L) и new Date() в формат UTC. Но я не могу отформатировать dates[0] и dates[1] по UTC.

Любые идеи о том, как конвертировать dates[0] и dates[1] в формат UTC? Это можно сделать в одной строке.

Я пробовал df.format(dates[0]), но его не работало.

Прошу прощения, если я могу походить на нос, но я новичок в java, и я учусь каждый день.

Спасибо за много заранее.

ответ

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)) 
+0

Спасибо, много cmbaxter ... еще один урок узнал :) –

Смежные вопросы