2016-09-28 13 views
0

2つのウィジェット想像だろうがに2つのウィジェットから日付と時刻を読むための最も効率的な方法だろうSWTのDateTime - 2つのウィジェットから読ん日時

DateTime dtDate = new DateTime(parent, SWT.BORDER); 

DateTime dtTime = new DateTime(parent, SWT.BORDER | SWT.TIME); 

を単一の日付変数?

: 次の解決策は、エレガントではありません。私はこれを行うより良い方法があることを願っています。

final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
// year 
dateString += String.valueOf(dtDate .getYear()); 
dateString += "-"; 
// month 
dateString += String.valueOf(dtDate .getMonth()); 
dateString += "-"; 

// day 
dateString += String.valueOf(dtDate .getDay()); 
dateString += " "; 

// hour 
dateString += String.valueOf(dtTime.getHours()); 
dateString += ":"; 

// minute 
dateString += String.valueOf(dtTime.getMinutes()); 
dateString += ":"; 

// second 
dateString += String.valueOf(dtTime.getSeconds()); 

try { 
    Date startDate = (Date) dateFormat.parse(dateString); 
    } catch (ParseException exception) { 
    exception.printStackTrace(); 
    } 

答えて

1

JFaceのデータが使用するCalendarバインディング:

Calendar cal = Calendar.getInstance(); 
cal.clear(); 

cal.set(Calendar.YEAR, dtDate.getYear()); 
cal.set(Calendar.MONTH, dtDate.getMonth()); 
cal.set(Calendar.DAY_OF_MONTH, dtDate.getDay()); 

cal.set(Calendar.HOUR_OF_DAY, dtTime.getHours()); 
cal.set(Calendar.MINUTE, dtTime.getMinutes()); 
cal.set(Calendar.SECOND, dtTime.getSeconds()); 

Date date = cal.getTime(); 

をあなたは、Java 8を使用している場合は、この日付+時間が表す正確に何に依存LocalDateTimeまたはZonedDateTimeのようなものを使って見たいかもしれません。

+0

Java 8以降に組み込まれているjava.timeの機能の多くは、[ThreeTen-Backport](http://www.threeten.org/threetenbp/)のJava 6および7にバックポートされ、さらに[ [ThreeTenABP](https://github.com/JakeWharton/ThreeTenABP)の[Android *](https://en.wikipedia.org/wiki/Android_(operating_system) //stackoverflow.com/q/38922754/642706))。 –

関連する問題