我正在开发Windows上的Java GUI(Eclipse和SWT)。我需要GUI用户输入日期(日历小部件),然后日期/时间(来自数据源)操作,包括处理不同的时区。
我切换到Joda以获得更好的日期/时间操作,因为我认为这比标准SWT更好。但是,据我所知,Joda不支持自己的日历小部件。
任何人都可以建议我如何做到这与SWT和Joda兼容吗?
我看到直接引用:
private org.joda.time.DateTime jodaDateTime;
private swt.DateTime swtDateTime;
是一个选项,但想知道其他人是什么。
答案 0 :(得分:3)
这是一个足够简单的转换,您只需创建实用程序方法即可转换为默认SWT窗口小部件,例如。
public class DateUtils {
public static org.joda.time.DateTime makeJodaFromSWT(
org.eclipse.swt.widgets.DateTime widget) {
return new DateTime(widget.getYear(),
widget.getMonth(),
widget.getDay(),
widget.getHours(),
widget.getMinutes(),
widget.getSeconds());
}
public static void updateSWTwithJoda(
org.eclipse.swt.widgets.DateTime widget,
org.joda.time.DateTime dateTime) {
widget.setYear(dateTime.getYear());
widget.setMonth(dateTime.getMonthOfYear());
widget.setDay(dateTime.getDayOfMonth());
widget.setHours(dateTime.getHourOfDay());
widget.setMinutes(dateTime.getMinuteOfHour());
widget.setSeconds(dateTime.getSecondOfMinute());
}
}
我需要了解更多有关您的项目的信息,以便提出一个更聪明的"包装方案比public static
实用方法,但这应该让你走在正确的轨道上。