技術筆記 / Java

Java 常用方法

time

Iso8601 to ZonedDateTime

```java= java.time.ZonedDateTime.parse("2015-08-18T00:00+01:00");


### get UTC+0 now Date
```java=
Date.from(java.time.ZonedDateTime.now(ZoneId.of("UTC+0")).toInstant());

兩個時間相隔多久

```java= private double subtract(String k1,String k2) { var k1t = ZonedDateTime.parse(k1); var k2t = ZonedDateTime.parse(k2); return ChronoUnit.MILLIS.between(k1t,k2t) / 1000; }


### before
```java=
        ZonedDateTime st = ZonedDateTime.parse("2015-08-18T00:00+01:00");
        ZonedDateTime ed = ZonedDateTime.parse("2019-08-18T00:00+01:00");
        System.out.println(ed.isBefore(st));
        System.out.println(ed.isAfter(st));
        System.out.println(st.isBefore(ed));
        System.out.println(st.isAfter(ed));

ans : ```shell= false true true false


## List / Array

### reverse 排序顛倒
```java=
public static void reverse(List<?> list){ ... }
//
Collections.reverse(arrlst);

Array to List

```java= Integer[] spam = new Integer[] { 1, 2, 3 }; List list = Arrays.asList(spam);


### Collection to Array
```java=
// Where x is the collection:
Foo[] foos = x.toArray(new Foo[x.size()]);

stream

sum numbers

```java= List integers = Arrays.asList(1, 2, 3, 4, 5); Integer sum = integers.stream() .reduce(0, (a, b) -> a + b);


### collect 指定 型別

```java
List<String> fields=Arrays.asList("foo", "bar", "baz", "foo");
CopyOnWriteArrayList<String> l =
    fields.stream()
          .distinct()
          .collect(Collectors.toCollection(CopyOnWriteArrayList::new));

JSON

dto 忽略 field

```java= public class MyDto {

private String stringValue;
@JsonIgnore
private int intValue;

}


## String

### placehoder 

#### MessageFormat.format
```java=
 String streamName = MessageFormat.format("{0}@kline_{1}", symbol, interval);
tags: java

在 GitHub 看原文