如何在libGdx中使用date-time utils?

时间:2016-05-23 08:10:13

标签: date datetime time libgdx format

我想在我的libGdx应用程序中使用DateTime格式,我希望与Web版本(gwt)兼容。默认的java方式不适用于gwt版本,因为不支持所需的类。

我已尝试使用joda-timetreeten-bp等外部库。后者依赖于gwt不支持的java类,而joda-time具有我无法解析的依赖...

我已经看到gwt有我需要的时间工具,但我无法弄清楚如何使用它们。

甚至如何添加一些逻辑来在android和桌面中使用普通的java utils,并在html5 / gwt中使用gwt类。但我只是无法弄清楚如何使用gwt类即。 libGdx中的DateTimeFormat。尝试只导入它会产生Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要使用ActionResolver并为您的每个模块实现您希望使用的DateTime方法(有关如何编写特定于平台的代码,请参阅https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code。)

对于Android,iOS和桌面实现,您可以在ActionResolver中使用SimpleDateFormat。

对于HTML模块,您可以使用库

com.google.gwt.i18n.client.DateTimeFormat 

并实施如下

    public class HtmlLauncher extends GwtApplication implements com.yourpackage.util.ActionResolver{

        @Override
        public GwtApplicationConfiguration getConfig () {
                return new GwtApplicationConfiguration(360, 640);
        }

        @Override
        public ApplicationListener getApplicationListener () {
                return new MyGame(this);
        }

        @Override
        public String convertDate(String format, Date date) {
            DefaultDateTimeFormatInfo info = new DefaultDateTimeFormatInfo();
            DateTimeFormat dateFormat = new DateTimeFormat(format, info) {}; 

            return dateFormat.format(date);
        }

    }