我正在使用 Freemarker 版本2.3.20。
我有一个数据结构,其中包含两个日期 - 一个在本地时间,一个在UTC 时间。
// 2017-07-17 18:30 UTC
ZonedDateTime utcTime = ZonedDateTime.of(2017, 7, 17, 18, 30, 0, 0, ZoneId.of("UTC"));
// 2017-07-17 20:30 (+02:00)
ZonedDateTime localTime = utcTime.withZoneSameInstant(ZoneId.of("Europe/Berlin"));
Run Code Online (Sandbox Code Playgroud)
Freemarker 只能处理java.util.Date
所以我要交出日期。
Map<String, Object> mapping = new HashMap<String, Object>();
mapping.put("departureTimeLocal", Date.from(localTime.toInstant()));
mapping.put("departureTimeUtc", Date.from(utcTime.toInstant()));
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我希望编写如下内容:
Departure (local): ${departureTimeLocal?string['HH:mm']}
Departure (UTC) : ${departureTimeUtc?string['HH:mm']}
Run Code Online (Sandbox Code Playgroud)
因此,我希望看到:
Departure (local): 20:30
Departure (UTC) : 18:30
Run Code Online (Sandbox Code Playgroud)
我目前看到的是:
Departure (local): 20:30
Departure (UTC) : 20:30 <#-- timestamp interpreted in local …
Run Code Online (Sandbox Code Playgroud) 新的一年-新的问题;)
我正在Linux机器上工作,并且刚刚安装了新的Eclipse。
Version: Oxygen.2 Release (4.7.2)
Build id: 20171218-0600
JRE: java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
然后,我Spring Tools
3.9.2.RELEASE
通过市场添加了最新版本的。
当前唯一安装的其他插件是 Subversive
4.0.5
我正在处理的项目和以前按预期工作的项目已Spring Boot Project Nature
启用。
但是,使用新安装后,我缺少了自动完成功能-不再需要完成或提议属性。
在项目资源管理器中,application.yml
仅显示标准文件图标,不再显示(如果我没记错的话)“春叶”图标。在另一个使用“ application.properties”文件的项目中,行为是相同的。
现在需要设置吗?还是我可以检查的其他内容?
与我之前的问题没有直接关系:
在可以正常工作的旧安装中,我一直想知道为什么将这两个文件名application.properties
和application-dev.properties
(或它们的.yml类似)准确地识别为属性文件,而其他文件名例如不是application-test.properties
或application-prod.properties
。
这不仅是图标的问题,而且还会打开错误的编辑器,因此我没有自动完成支持-除非我说Open with -> Spring Yaml Properties Editor
。