小编deH*_*aar的帖子

比较Hibernate中datetime字段的时间部分

我有一个为ORM使用hibernate(annotations)/ mysql组合的应用程序.在该应用程序中,我得到了一个带有Date字段的实体.我正在寻找一种在一个时间范围内选择该日期的方法(所以hh:mm:没有日期部分的ss).

在MySQL中有一个函数TIME(表达式)可以提取时间部分并在where子句中使用它,但是在没有切换到本机查询的情况下,Hibernate似乎没有这个功能.hibernate中是否有选项可以执行此操作,还是应该在java中循环结果并在那里进行比较?这会像MySQL解决方案那样慢得多,因为它不会使用索引吗?

java mysql hibernate

5
推荐指数
1
解决办法
5452
查看次数

为不同的Locales定制java.text格式化程序

构建支持不同Locales的Java应用程序,但希望自定义DateFormat显示超出FULL,LONG,MEDIUM和SHORT DateFormat选项之间的可用范围.想要做一些事情,比如在DateFormat.getDateTimeFormat()的日期和时间组件之间放置一个字符,小写AM/PM等,至少为英语.

可以想到3种方法:

1)如果locale是english,请在新的SimpleDateFormat对象上使用我的自定义格式字符串.

2)修改现有语言环境的默认格式字符串

3)创建一个新的语言环境变体,指定我想要的格式字符串

无法弄清楚如何做2或3(或者如果它甚至可能),并且宁愿不做1 ...有没有人之前处理过这样的事情?

此外,似乎需要2或3来降低AM/PM?(为语言环境的dateformat设置指定AmPmMarkers资源)

java locale localization internationalization

5
推荐指数
1
解决办法
2036
查看次数

使用Swing进行语法着色

是否有可能有一些像一个JTextArea将基于色彩的一些映射我有一些关键字?

java swing

5
推荐指数
2
解决办法
418
查看次数

在具有不同类型返回的功能接口中为空

我写这段代码,但我不知道为什么编译.

UnaryOperator接受特定类型参数,并返回与其参数类型相同的结果.

我的问题:如果我把一个if-statement返回null,是不是有编译器错误?

null 不是它的论点的类型(在我的例子中是Doll)?

内置的功能接口(如Consumer,UnaryOperator,Function)是否可以返回null而不是标准返回值?

这是我的代码:

import java.util.function.*;

public class Doll {

    private int layer;

    public Doll(int layer) {
        super();
        this.layer = layer;
    }

    public static void open(UnaryOperator<Doll> task, Doll doll) {
        while ((doll = task.apply(doll)) != null) {
            System.out.println("X");
        }
    }

    public static void main(String[] args) {
        open(s -> {
            if (s.layer <= 0)
                return null;
            else
                return new Doll(s.layer--);
        }, new Doll(5));
    }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

java if-statement return-type unary-operator

5
推荐指数
1
解决办法
128
查看次数

LocalTime.MIDNIGHT 与 LocalTime.MIN - 有什么区别吗?

我最近使用LocalDate.atStartOfDay()和回答了一些问题LocalDate.atTime(LocalTime.MIN)
我想知道为什么没有LocalDate.atEndOfDay()或类似的,所以必须使用LocalDate.atTime(LocalTime.MAX)才能获得特定日期的最后时刻(我认为是 nanos)。

我查看了LocalDateand的来源并LocalTime对此感到有些困惑:

/**
 * Combines this date with the time of midnight to create a {@code LocalDateTime}
 * at the start of this date.
 * <p>
 * This returns a {@code LocalDateTime} formed from this date at the time of
 * midnight, 00:00, at the start of this date.
 *
 * @return the local date-time of midnight at the start of this date, not null
 */ …
Run Code Online (Sandbox Code Playgroud)

java datetime localtime java-time localdate

5
推荐指数
1
解决办法
175
查看次数

Java实例变量可访问性

Java中以下变量的可访问性有何不同?

public class Joe {
    public int a;
    protected int b;
    private int b;
    int c;
}
Run Code Online (Sandbox Code Playgroud)

我最感兴趣的是最后一个人在做什么.

java variables inheritance accessibility

4
推荐指数
1
解决办法
7810
查看次数

需要帮助来理解字符串长度逻辑

我试图理解String length()函数在反转字符串时是如何工作的.字符串长度是4然后我需要在下面的工作代码中给出length() - 1.

下面的代码没问题,需要帮助理解长度()

public class MStringReverse {

    String getReverse(String input) {
        System.out.println(input.length());
        String reverse = "";
        for(int i = input.length() - 1; i >= 0; i--) {
            reverse = reverse + input.charAt(i);
        }
        return reverse;
    }

    public static void main(String[] args) {
        MStringReverse mr = new MStringReverse();
        String result = mr.getReverse("Achilis");
        System.out.println(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

java string

4
推荐指数
2
解决办法
264
查看次数

Java返回做了奇怪的事情

我刚开始用一些练习来学习Java for university.我不是编程的新手,只是Java.我遵循了所有的指令,但Java的返回函数做了一些非常奇怪的事情.我插入了一些调试输出以更好地理解代码.包括该程序的CMD.output.

我以为函数会在返回后直接终止.但为什么在这种情况下不这样做呢?

public class Rekursion {

    public static void main(String[] args) {
        int zahl = 10;
        System.out.println("debugStart");
        boolean even = isEven(zahl);
        System.out.println("debugEnd");

        if (even == true) {
            System.out.println(zahl + " is even");
        } else {
            System.out.println(zahl + " is uneven");
        }
    }

    public static boolean isEven(int n) {
        System.out.println(n);
        if (n > 1) {
            System.out.println("debugx");
            isEven(n - 2);
        }

        if (n == 0) {
            System.out.println("debug1");
            return true;
        } else if (n == 1) {
            System.out.println("debug2");
            return false;
        } …
Run Code Online (Sandbox Code Playgroud)

java methods return

4
推荐指数
2
解决办法
147
查看次数

对于循环,而不是集合中的循环

我对Collections.class和"copy"方法有疑问.

1)为什么我们在下面的代码条件下检查源列表的大小,以及为什么它必须小于10?为什么这么重要?

2)更重要的是,为什么我们在这个条件中使用for循环而在 - while (hasNext())

public static <T> void copy(List<? super T> dest, List<? extends T> src) {
    int srcSize = src.size();
    if (srcSize > dest.size()) {
        throw new IndexOutOfBoundsException("Source does not fit in dest");
    } else {
        if (srcSize < 10 || src instanceof RandomAccess && dest instanceof RandomAccess) {
            for (int i = 0; i < srcSize; ++i) {
                dest.set(i, src.get(i));
            }
        } else {
            ListIterator<? super T> di = dest.listIterator();
            ListIterator<? extends T> si = src.listIterator(); …
Run Code Online (Sandbox Code Playgroud)

java collections

4
推荐指数
1
解决办法
109
查看次数

日期时间字符串中的“z”在不同的语言环境中是否有不同的输出?

不久前,我回答了一个关于如何从ZonedDateTime解析的String.
它一般有效,但在 OP 的系统和我的系统上有相同代码的不同输出,不知何故不再让我离开。

相关问题询问如何ZoneId从 a获取a ZonedDateTime,我提供了一种方法。诚然,这不是公认的答案,但似乎仍然值得某人点赞。

我的答案的特别之处在于'z'用于解析时间的模式中的String。有一个时区名称,用(澳大利亚中部标准时间)String表示时区。"Australia/Adelaide""... ACST"

当我解析它在我的系统和打印上/格式化ZonedDateTime使用DateTimeFormatter.ISO_ZONED_DATE_TIME,它打印的时间"America/Manaus"和已经提取ZoneId,它仍然是一个来自南美。OP 在我的回答下方的评论中指出,在他的系统上,至少有一个输出行显示了所需的/正确的ZoneId.

这怎么可能?系统默认语言环境对解析'z'in datetime有什么影响String吗?

这是我在问题中的回答的代码加上我的输出ZoneId.systemDefault()

public static void main(String args[]) throws Exception {
    String time = "2 Jun 2019 03:51:17 PM ACST";
    String pattern = "d MMM yyyy hh:mm:ss a z"; // z detects the time zone (ACST here) …
Run Code Online (Sandbox Code Playgroud)

java timezone java-time zoneddatetime

4
推荐指数
1
解决办法
81
查看次数