在JAVA中使用Date类处理TimeZone更改

我正在尝试打印当前系统日期和时间,如下所示, public class PrintDate { public void getDate(){ while(true){ System.out.println(new Date()); } } public static void main(String[] args) { new PrintDate().getDate(); } } 这个无限循环按预期打印当前系统时间戳,当我在操作系统中更改日期或时间但没有时区更改时,它工作正常。 示例: 我启动了上面的代码,它按预期连续打印当前系统时间戳。 当我更改系统日期或时间时,它会成功反映在代码中。 当我更改系统时区时,它没有反映在代码中。 自程序启动以来,它仍然显示相同的时区。 我可以知道这背后的原因吗?

H2 Java插入忽略 – 允许exception

我正在开发一个与H2数据库连接的java插件。 我真正想要的是“插入忽略”声明; 但是,我知道H2并不支持这一点。 我也知道Merge,但这真的不是我想要的,如果记录存在我不想改变它。 我正在考虑的是只运行插入并让重复键exception发生。 但是,我不希望这填充我的日志文件。 数据库调用发生在我无法更改的导入类中。 所以我的问题是: 这是一件合理的事吗? 我不是一个让错误发生的人,但这似乎是这种情况下最好的方式(它不应该发生那么多)。 如何防止此exception命中我的日志文件? 如果没有办法阻止堆栈中的exception,我可以重定向输出的堆栈跟踪的输出吗? 谢谢。

@AuthenticationPrincipal与Spring Boot无法正常工作

使用Spring Boot 1.3.1,我遇到了@AuthenticationPrincipal问题。 这是我的控制器: @RestController @RequestMapping(“/api/user”) public class UserController { @RequestMapping(“/”) public UserDto user(@AuthenticationPrincipal(errorOnInvalidType = true) User user) { return UserDto.fromUser(user); } } 这是我自定义的User类: @Entity() @Table(name = “app_user”) public class User extends AbstractEntity implements Serializable { // —————————— FIELDS —————————— @NotNull @Column(unique = true) @Pattern(regexp = “[a-zA-Z_\\-\\.0-9]+”) @Size(min = 1, max = 20) private String […]

Jooq在生成的查询中动态更改db的架构

我在简单的数据库中有2个类似的模式 – “develop”和“stage”。 我已经使用Jooq为其中一个模式生成了Java类(例如“develop”)。 当jooq为db生成查询时,它会隐式地将模式的名称添加到所有查询的别名中 select “develop”.”image”.”id”, “develop”.”image”.”image_data” from “develop”.”image” where “develop”.”image”.”id” = ? 所以我的问题是,是否有办法在生成的查询中更改jooq模式名称(对于“stage”作为示例)而不重新生成jooq的“stage”模式类?

从java中的mysql存储过程中获取参数

我有问题从java中的mysql存储过程检索OUT参数。 CALL proc_after_topic_add(‘newtest’,@result); SELECT @result; 这个查询给了我想要的参数,但我将如何在java中检索它。我尝试使用CallableStatement但我得到了 java.sql.SQLException: Callable statments not supported. 错误。请伙计们帮助我。 我试过跟随 String sql = “CALL proc_after_topic_add(?,?);”; CallableStatement cstmt = conn.prepareCall(sql); cstmt.setString(1, topicname); cstmt.registerOutParameter(2, java.sql.Types.INTEGER); ResultSet rs = cstmt.executeQuery(); if (rs.next()) { if (rs.getInt(1) == 1) { res = 0; } else { res = -1; } } 我没有发布存储过程代码,因为它没有任何问题。 PS:I a using mysql 5.5.21 […]

如何在Javafx中为XML文件创建常量变量

StackPane layoutY=”70.0″ prefHeight=”479.0″ 。 我想在Java文件(479.0)值(70.0)和(479.0)静态,因此我可以将它们用于其他文件。 这可能吗?

什么是“git merge-base –fork-point branchA branchB”的jgit等价物

什么是“git merge-base –fork-point branchA branchB”的jgit等效代码? 我尝试了下面的代码,但我没有得到正确的答案。 我正在用它来寻找分支起源。 foreach.branch(git merge-base –fork-point mybranch theirbranch)将仅为起始点生成null提交ID。 所以,我需要做的就是弄清楚如何在jgit中执行此操作,并且我有一个计算分支原点的方法,当我还不知道它时。 private String getMergeBase(Repository repository, ObjectId commitIdA, ObjectId commitIdB) { RevWalk walk = new RevWalk(repository) try { RevCommit revA = walk.lookupCommit(commitIdA) RevCommit revB = walk.lookupCommit(commitIdB) walk.setRevFilter(RevFilter.MERGE_BASE) walk.markStart([revA,revB]) RevCommit mergeBase = walk.next() if (! mergeBase) { return null } return mergeBase.name } catch(Exception e) […]

在Java中绘制文本,外观和感觉问题

我已经覆盖了扩展JToggleButton的paintComponent方法,以便在切换按钮时可以使用TexturePaint填充文本。 我遇到的问题是我似乎无法使用与我的外观相同的字体来绘制文本作为默认设置。 我试过g2d.setFont(this.getFont()); ,“这个”是我正在使用的按钮。 字体很接近,但在绘制时看起来比默认文本更大胆。 是否有更好的方法来绘制文本,使其看起来与默认相同,除了颜色? 提前致谢!

Android中的游标是否引用0或1中的列?

我正在使用SQLite数据库,我正在成功返回游标,但我想知道游标是否引用以0开头的列,如数组还是仅1?

GAE部署Java8 / Java7错误

我试图通过Intellij IDEA向GAE部署一个基本空的项目。 我创建了一个新项目,在appengine-web.xml中设置我的项目ID,并保留其他所有内容。 我得到以下错误, 这里有完整的日志。 java.lang.IllegalArgumentException: Class file is Java 8 but max supported is Java 7: org/eclipse/jetty/apache/jsp/JettyJasperInitializer$1.class in C:\Users\Tony\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.48\appengine-java-sdk\appengine-java-sdk-1.9.48\jetty93\jetty-distribution\lib\apache-jsp\org.eclipse.jetty.apache-jsp-9.3.14.v20161028-nolog.jar 我已经尝试安装JDK 7,设置一切使用它,在1.7和1.8中使用JDK 8编译,似乎没什么用。