编程语言
首页 > 编程语言> > java-当我拥有所有Joda DateTime对象时,如何使用SWT日历?

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

作者:互联网

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

我改用Joda以获得更好的日期/时间操作,因为我认为这比标准SWT更好.但是,据我了解,Joda不支持其自己的日历小部件.

谁能建议我该如何与SWT和Joda兼容?

我看到了直接引用:

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

是一个选择,但想知道还有哪些其他选择.

解决方法:

这是一个足够简单的转换,您只需创建实用程序方法即可与默认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());
  }
}

与公共静态实用程序方法相比,我需要更多地了解您的项目才能提出“更智能”的包装方案,但这应该使您走上正确的道路.

标签:jodatime,widget,swt,datetime,java
来源: https://codeday.me/bug/20191119/2038972.html