当我拥有所有Joda DateTime对象时,如何使用SWT日历?

时间:2015-08-28 18:38:01

标签: java datetime widget swt jodatime

我正在开发Windows上的Java GUI(Eclipse和SWT)。我需要GUI用户输入日期(日历小部件),然后日期/时间(来自数据源)操作,包括处理不同的时区。

我切换到Joda以获得更好的日期/时间操作,因为我认为这比标准SWT更好。但是,据我所知,Joda不支持自己的日历小部件。

任何人都可以建议我如何做到这与SWT和Joda兼容吗?

我看到直接引用:

private org.joda.time.DateTime jodaDateTime;
private swt.DateTime swtDateTime;

是一个选项,但想知道其他人是什么。

1 个答案:

答案 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实用方法,但这应该让你走在正确的轨道上。