Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертирование типа Date / 13 сообщений из 13, страница 1 из 1
14.04.2014, 14:33
    #38614231
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Всем привет, в MS Access у меня дата хранится в формате MM/dd/yyyy, при выборке этого поле в JTable дата отображается как yyyy-MM-dd.
Есть компонент DatePicker в котором дата хранится в формате Apr 13, 2014, в который нужно вставить дату скажем 2010-05-08, пытаюсь использовать код ниже не получается, ошибка внизу:

Код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	public Date getDate(JTable myTable, String columnName) {
		Date date = null;
		try {
			date = (Date) new SimpleDateFormat("d MM,y", Locale.US).parse(getTableCell(myTable, columnName));
		} catch (ParseException e1) {
			e1.printStackTrace();
			date = null;
			return date;
		}
		return date;
	}



Ошибка:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
java.text.ParseException: Unparseable date: "2010-05-08"
	at java.text.DateFormat.parse(Unknown Source)
	at DCCViewer.MainWindow.getDate(MainWindow.java:295)
	at DCCViewer.MainWindow$4.mouseClicked(MainWindow.java:205)
	at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
null


Кто нибудь сталкивался с такой проблемой? Подскажите пожалуйста решение.
P.S Пытался использовать вместо "d MM,y" и другие форматы как "yyyy-MM-dd", "MM/dd/yyyy" и т.д, но все тщетно.
Спасибо заранее.
...
Рейтинг: 0 / 0
14.04.2014, 14:40
    #38614244
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuidЕсть компонент DatePicker в котором дата хранится в формате Apr 13, 2014
Дата именно в строке хранится или все таки в Date?
...
Рейтинг: 0 / 0
14.04.2014, 16:07
    #38614402
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Компонент DatePicker показан на рисунке, как видите компонент построен в стиле JCalendar:
...
Рейтинг: 0 / 0
14.04.2014, 16:58
    #38614485
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuid, я просто ни разу не сталкивался с ситуацией, когда дата насильно хранится в строке. Обычно long или date.
...
Рейтинг: 0 / 0
14.04.2014, 16:58
    #38614487
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Кстати, и access тоже дату хранит не как строку. Это подсказка.
...
Рейтинг: 0 / 0
14.04.2014, 17:02
    #38614489
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuidКомпонент DatePicker показан на рисунке, как видите компонент построен в стиле JCalendar:
Это по-моему com.michaelbaranov.microba.calendar.DatePicker и него есть метод setDateFormat() - какой формат подсунешь, так он и будет показывать. Ну и методы getDate(), setDate(), работающие с java.util.Date.
...
Рейтинг: 0 / 0
15.04.2014, 06:33
    #38614940
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Да, тип данных Date, народ немного уйду в оффтоп, подскажите, я вот рисую ручками форму без Eclipse-Window Builder, размер текста в JTextField длинее чем размер самого компонента и поэтому при запуске форма фиксированной ширины а из за того что текст в JTextField длинный сам компонент JTextField тоже стал широким и конец ушел куда то за формой, setSize не помогает, что за ошибка у меня? Вот код:
На Root Panel ContentPane тоже ставил фиксированную длину но все это не помогает.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        	JTextField _PDFLink = new JTextField();
		JPanel PDFLinkPanel = new JPanel();
		PDFLinkPanel.setBorder(BorderFactory.createTitledBorder("PDFLink"));
		PDFLinkPanel.setLayout(new BoxLayout(PDFLinkPanel, BoxLayout.X_AXIS));		
		_PDFLink.setMaximumSize(new Dimension(1000,25));		

		_PDFLink.setText("Z:\\blablablablalblallalalalalaaaaaaaaaaaaaaaaaaaaaaaaaaa");
		_PDFLink.setToolTipText(_PDFLink.getText());
		
		PDFLinkPanel.add(_PDFLink);
......

		MainPane.add(PDFLinkPanel );
		
		JScrollPane jspane = new JScrollPane(MainPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		
		this.pack();
		
		this.setResizable(false);
		this.setSize(180, 768);


И на рисунке как отобразился JTextField - _PDFLink
...
Рейтинг: 0 / 0
15.04.2014, 06:34
    #38614941
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
...
Рейтинг: 0 / 0
15.04.2014, 06:59
    #38614946
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Попробовал setDateFormat (дата 5/8/2010):
Код: java
1.
DccDate = getDate(_dccTable, "DCC Date");


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	public Date getDate(JTable _dccTable, String columnName) {
		Date date = new Date();
		String testDate = getTableCell(_dccTable, columnName);
		DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		
		try {
			date = formatter.parse(testDate);
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
			date = null;
			return date;
		}
		return date;
	}


Принимаю в другом классе полученные данные:
Код: java
1.
2.
3.
4.
5.
6.
7.
		try {
			_DccDatePicker.setDate(m.DccDate);
			System.out.println(_DccDatePicker.getDate());
		} catch (PropertyVetoException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}


И вот опять в Long format:
Sat May 08 00:00:00 UZT 2010
...
Рейтинг: 0 / 0
15.04.2014, 09:19
    #38614992
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuid
Код: java
1.
String testDate = getTableCell(_dccTable, columnName);


То есть Date получить не можешь? Только строку?
...
Рейтинг: 0 / 0
15.04.2014, 13:02
    #38615202
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
Не могу потому что в JTable-е дата хранится в String.
...
Рейтинг: 0 / 0
15.04.2014, 13:18
    #38615235
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuidНе могу потому что в JTable-е дата хранится в String.
И в access дата хранится в строке?
...
Рейтинг: 0 / 0
15.04.2014, 13:44
    #38615271
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование типа Date
LiQuid,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class DateFromStringExample {


    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String strDate = "2014-04-15";
        System.out.println(sdf.parse(strDate));
    }
}



Так тоже не работает?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертирование типа Date / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]