我想在我的libGdx应用程序中使用DateTime格式,我希望与Web版本(gwt)兼容。默认的java方式不适用于gwt版本,因为不支持所需的类。
我已尝试使用joda-time和treeten-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
提前感谢您的帮助!
答案 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);
}
}