如何在 gwt 中创建时区对象?

Posted

技术标签:

【中文标题】如何在 gwt 中创建时区对象?【英文标题】:how to create timezone object in gwt? 【发布时间】:2016-12-02 10:00:19 【问题描述】:
TimeZone tzTarget = TimeZone.createTimeZone( "Asia/Dhaka" );

在 GWT 中创建时区对象时出现错误:

加载模块 com.test.client.GWT_project 时出现异常。看 开发模式了解详情。 java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406) 在 com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) 在 com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526) 在 com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) 在 java.lang.Thread.run(Unknown Source) 引起: java.lang.IllegalArgumentException:解析 JSON 时出错:SyntaxError: JSON.parse:意外字符亚洲/达卡在 com.google.gwt.core.client.JsonUtils.throwIllegalArgumentException(JsonUtils.java:118) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 在 com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 在 com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 在 com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338) 在 com.google.gwt.dev.shell.BrowserChannelServer.invokejavascript(BrowserChannelServer.java:219) 在 com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 在 com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571) 在 com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279) 在 com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 在 com.google.gwt.core.client.JsonUtils.safeEval(JsonUtils.java) 在 com.google.gwt.i18n.client.TimeZoneInfo$.buildTimeZoneData(TimeZoneInfo.java:42) 在 com.google.gwt.i18n.client.TimeZone.createTimeZone(TimeZone.java:75) 在 com.test.client.GWT_project.onModuleLoad(GWT_project.java:54) ... 9 更多

【问题讨论】:

【参考方案1】:

使用这个:

private static final TimeZoneConstants t = (TimeZoneConstants) GWT.create(TimeZoneConstants.class);

TimeZone tzTarget = TimeZone.createTimeZone( t.asiaDhaka());

【讨论】:

我认为这是错误的 - 您需要通过那里列出的属性传递 JSON 本身。比如TimeZoneConstants constants = GWT.create(TimeZoneConstants.class);,然后是TimeZone.createTimeZone(constants.asiaDhaka()); 你是对的 - 我专注于“亚洲/达卡”的斜线:) @DadaKambale:那么您可以接受并可能投票赞成答案。这就是我们在 *** 上表达赞赏的方式。欢迎加入社区!

以上是关于如何在 gwt 中创建时区对象?的主要内容,如果未能解决你的问题,请参考以下文章

在 GWT 中创建多个 HTML 页面

如何在特定时区(最好是我的应用程序的默认时区,而不是 UTC)中创建新的 DateTime 对象?

如何在GWT中集成CKEditor

如何在 Eclipse GWT 项目中配置服务器?

如何在 GWT 的滚动面板中创建子标题?

GWT RPC如何发送任何对象