You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maven中生成EST时区的yyyyMMdd-HHmm格式时间戳?

生成EST时区、格式为yyyyMMdd-HHmm的Maven时间戳

你的核心问题是Maven版本不支持maven.build.timestamp.timezone属性——MNG-5452确实实现了时区支持,但这个功能是在Maven 3.9.0及以上版本才发布的,而你当前使用的是3.8.4,所以properties里的时区配置完全不生效。

另外你当前的配置还存在冲突:你在properties里定义了<timestamp>${maven.build.timestamp}</timestamp>,这会直接覆盖build-helper-maven-plugin生成的同名属性,导致插件的时区配置白搭。

正确配置方案(无需升级Maven、无需修改MVN_OPTIONS)

移除properties里的timestamp、maven.build.timestamp.format、maven.build.timestamp.timezone配置,然后修改build-helper-maven-plugin的配置,确保生成你需要的格式和时区:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.3.0</version>
            <executions>
                <execution>
                    <id>timestamp-property</id>
                    <!-- 确保在你需要使用timestamp属性的阶段之前执行,比如initialize -->
                    <phase>initialize</phase>
                    <goals>
                        <goal>timestamp-property</goal>
                    </goals>
                    <configuration>
                        <name>timestamp</name>
                        <!-- 改成你需要的格式 -->
                        <pattern>yyyyMMdd-HHmm</pattern>
                        <locale>en_US</locale>
                        <!-- 用完整时区ID更可靠,EST可能有歧义 -->
                        <timeZone>America/New_York</timeZone>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

验证方法

运行以下命令直接查看生成的时间戳:

mvn help:evaluate -Dexpression=timestamp -q -DforceStdout

补充说明

  • 尽量使用America/New_York而非EST,因为EST是固定时区(不考虑夏令时),而America/New_York会自动切换夏令时(EDT/EST),更符合实际需求。
  • 如果你的项目需要在更早的构建阶段使用这个timestamp属性,确保插件的<phase>设置为对应的阶段(比如validate)。

内容的提问来源于stack exchange,提问作者Molay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:32:47