gle*_*ebk 6 javascript gwt parsing
我在这个上花了很多时间,所以我发布了问题并回答了我学到的东西,作为帮助其他人的资源.问题的背景是构建RSS阅读器.虽然RSS日期应该符合RFC822,但它们以不同的方式这样做,因此您需要一种灵活的方法.我尝试使用GWT DateTimeFormat以及硬编码一些不同的掩码,但仍然找到破坏我的代码的测试用例.我终于偶然发现了优雅的解决方案:
包含对javascript Date.parse()方法的调用.它真的"只是工作".
作为一个元理论,在我继续开发的过程中,我将尝试测试,可能有很多东西通过使用原生javascript或其他库来"正常工作",而不是试图使用Java来强制它在GWT.
干杯!
使用 JSNI 本机 javascript 处理来包装对 javascript Date.parse() 方法的调用。它可以处理比 GWT 的 DateTimeFormat 更多的格式。
下面的代码给出了一个演示。请注意,GWT 不允许 javascript 传递长值,因此我使用 toString 来解决这个问题。
public native String webDateToMilliSec(String webDate) /*-{
var longDate = Date.parse(webDate);
return longDate.toString();
}-*/;
public long getTimeStamp(final Element el) {
String sDate = getValueIfPresent(el, "pubDate");
String sLongDate = webDateToMilliSec(sDate);
long longDate = Long.parseLong(sLongDate);
return longDate;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |