小编Bas*_*que的帖子

为什么我的 UTC 即时没有转换为 BST?

我有以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.UK);
Instant inst = DateTimeUtils.toInstant(sdf.parse("2019-08-13T18:00:00Z"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm").withLocale(Locale.UK).withZone(ZoneId.of("Europe/London"));
System.out.println(formatter.format(inst));
//prints 18:00
Run Code Online (Sandbox Code Playgroud)

这让我感到惊讶,因为我认为inst这将是 GMT/UTC 时间,并且formatter会将其格式化为伦敦时间(该日期为 BST(UTC+1:00)),生成19:00.

我在这里缺少什么?

我猜这是我的代码一个通用的问题,但如果它的确与众不同,这是利用org.threeten.bp.*从类ThreeTen-反向移植项目,在另外的适应Android的早期ThreeTenABP项目。

java-time threetenbp threetenabp

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

从Vaadin 14开始寻找新的UI

Vaadin 14手册中的导航生命周期说:

也可以使用中的addBeforeEnterListener(BeforeEnterListener)方法为该事件注册一个独立的侦听器UI

但是在具有路由功能的现代Vaadin中,我们不再应该编写UI子类。我的粗略理解是确实存在一个UI为我们自动实例化的对象,然后路由自动替换了该UI对象中的内容。因此,UI对于使用Vaadin Flow的程序员来说,对象的存在应该是透明的。

?那么,新UI实例上的生命周期挂钩是什么,这样我就可以编写一个用户身份验证检查以BeforeEnterListener在所有@Route视图中全局工作?

调用UI.getCurrent不会做,因为我需要从布局中的某个地方调用它,但是我试图布局存在之前注册一个侦听器。

hook user-interface lifecycle vaadin vaadin-flow

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

设置日期格式以获取年份的最后两位数字(例如:2019 年的 19)

我有那个代码。

Calendar data = Calendar.getInstance();
data.setTime(new Date());
System.out.println(String.valueOf(data.get(Calendar.YEAR)).substring(2,4));
Run Code Online (Sandbox Code Playgroud)

我有两个问题:
首先,我需要将它放在一个单独的文件中String(将其放入sout)。是否可以?
其次,我必须使用日期格式而不是转换为字符串。例如,获取"19"而不是"2019".

java string formatting calendar date

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

在 Android 中使用 `Calendar` 指定日期时间范围

StackOverflow 社区,

我目前正在处理我的新项目,而且我是 Java 和 Android Studio 的新手。我Entry用两个Calendar变量编写了自己的类。是否有更短更简洁的方法来创建新Entry对象,如以下代码所示?

//MainActivity.java    
//....
private ArrayList<Entry> initEntrys() {
        ArrayList<Entry> list = new ArrayList<>();
        Calendar calendar = Calendar.getInstance();

        Calendar mStartDate = calendar;
        Calendar mEndDate = calendar;
        mStartDate.set(2019, 12, 20, 7, 0);
        mEndDate.set(2019, 12, 20, 10, 0);
        list.add(new Entry(mStartDate, mEndDate));

        return list;
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。:)

java datetime android calendar arraylist

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

可以使 Java 流收集器返回的列表不可修改吗?

在处理 Java 流时,我们可以使用收集器来生成诸如流之类的集合。

例如,这里我们制作了一个Month枚举对象的流,并为每个对象生成一个String保存月份的本地化名称的流。我们通过调用 将结果收集到 a Listof 类型中。StringCollectors.toList()

List < String > monthNames = 
        Arrays
        .stream( Month.values() )
        .map( month -> month.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) )
        .collect( Collectors.toList() )
;
Run Code Online (Sandbox Code Playgroud)

monthNames.toString(): [janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]

为了使该列表不可修改,我们可以List.copyOf在 Java 10 及更高版本中调用。

List < String > monthNamesUnmod = List.copyOf( monthNames );
Run Code Online (Sandbox Code Playgroud)

? 有没有办法让带有收集器的流生成不可修改的列表,而我不需要包装对 的调用List.copyOf

java list unmodifiable java-stream collectors

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

Kotlin 中的小数乘法

我正在尝试将两种加密货币相乘,例如它们的数字0.002000.00300。我已经将它们定义为浮点数,我也尝试过双打和大小数。但我正在努力获得我期望的输出。

这是测试:

class MultiplyDecimalTest {

    @Test
    fun `test can multiply two decimal integers`() {
        val a = 0.00200
        val b = 0.00400
        val expected = 0.00800
        val actual = multiplyDecimal(a, b).toDouble()
        assertEquals(expected, actual)
    }
}
Run Code Online (Sandbox Code Playgroud)

当前功能:

fun multiplyDecimal(a: Double, b: Double): BigDecimal {
    return BigDecimal(b).multiply(BigDecimal(a))
}
Run Code Online (Sandbox Code Playgroud)

我是 Kotlin/Java 的新手,所以我怀疑我可能使用了错误的整数类型。

实际结果是:8.0E-6- 我知道 E-6 是一个指数,我希望能够像原始值一样格式化它。

java floating-point double bigdecimal kotlin

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

用于检查几个整数值之一的 Bean 验证

使用Jakarta Bean Validation版本 2 或 3,如何检查某个intInteger成员字段是否具有一组有限值中的一个?

\n

对于一个人为的过度简化的示例,请考虑此记录代表一个桶,其容量字段应容纳 50 或 55。

\n
record Barrel ( \n    UUID id , \n    int capacity   // Constrain to a value of either 50 or 55. \n) {}\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x9e\xa5 我将如何注释该capacity字段以确保它仅具有5055作为其数值?

\n

如果该capacity字段的类型为String,我可以@Pattern与正则表达式一起使用。

\n
public record Barrel(\n    @NotNull \n    UUID id , \n    @NotNull \n    @Pattern ( regexp = "50|55" )  // Constrain to …
Run Code Online (Sandbox Code Playgroud)

java integer bean-validation

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

在Java中生成离散随机变量?

今天面试的时候他们问了我这个问题?如何在Java中生成离散随机变量?我做不到,但我想知道解决方案。他们给了我一个数组:

double[] probabilities={.2,.1,.3,.4};
double[] outcomes ={4,5,8,11.5};
Run Code Online (Sandbox Code Playgroud)

这应该给出答案:

double discreteRV = problem.randPMF(probabilities,outcomes);
Run Code Online (Sandbox Code Playgroud)

我不明白如何解决这个问题。

java random

1
推荐指数
2
解决办法
348
查看次数

如何将 Unicode 转换为 char

我想获取与输入 int 对应的 Unicode 字符。您可以假设输入int可以用 Java 表示char

java

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

将iOS应用程序版本号设置为表示UTC当前日期时间的整数

我希望每次构建时,Xcode 5中的版本号(CFBundleVersionCFBundleShortVersionString)都会自动设置为UTC时区的当前日期时间.

例如,201405041942手段May 4, 2014 at 7:42 PM UTC.

xcode version-numbering ios

0
推荐指数
1
解决办法
851
查看次数