小编San*_*pat的帖子

如何使用 Golang 更新控制台中的多行

我编写了一个 go 程序,它同时执行许多任务(在 goroutine 中),并在控制台上显示这些任务的状态,如下所示 -

[Ongoing] Task1
[Ongoing] Task2
[Ongoing] Task3
Run Code Online (Sandbox Code Playgroud)

现在,这些任务中的任何一个都可以首先完成或最后完成。我想在同一位置更新这些任务的状态。如果Task2首先完成,那么它应该显示类似这样的内容 -

[Ongoing] Task1
[Done] Task2
[Ongoing] Task3
Run Code Online (Sandbox Code Playgroud)

我尝试了uilive库,但它总是像这样更新最后一行。(我认为这不是为了更新多行)

[Ongoing] Task1
[Ongoing] Task2
[Done] Task2
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?

terminal console command-line go

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

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

在java中获取非UTC时区的月份开始时间和结束时间

我试图获取特定时区特定月份的开始和结束时间,特别是“亚洲/加尔各答”(UTC+05:30)。

例如,以下是 2023 年 9 月的开始和结束时间。

开始时间: 2023-09-01 00:00:00

结束时间: 2023-09-30 23:59:59

我用Java实现了以下功能:

public static Long getStartTimeStampOfMonth(Month month, Year year) {
    LocalDate startDate = LocalDate.of(year.getValue(), month, 1);
    LocalDateTime startDateTime = LocalDateTime.of(startDate, LocalTime.MIN);
    ZonedDateTime istDateTime = startDateTime.atZone(ZoneId.of("Asia/Kolkata"));
    return Timestamp.valueOf(istDateTime.toLocalDateTime()).getTime();
}

public static Long getEndTimeStampOfMonth(Month month, Year year) {
    LocalDate startDate = LocalDate.of(year.getValue(), month, 1);
    LocalDate endDate = startDate.withDayOfMonth(startDate.lengthOfMonth());
    LocalDateTime endDateTime = LocalDateTime.of(endDate, LocalTime.MAX);
    ZonedDateTime istDateTime = endDateTime.atZone(ZoneId.of("Asia/Kolkata"));
    return Timestamp.valueOf(istDateTime.toLocalDateTime()).getTime();
}
Run Code Online (Sandbox Code Playgroud)

但是,我注意到上面的代码根据计算机上配置的时区返回开始和结束时间。即使我已明确指定 ZoneId.of("Asia/Kolkata"),它也不会产生所需的结果。

当我在设置为 UTC 时区的计算机上测试 2023 年 9 月的代码时,我得到以下输出:

开始时间:1693526400000

结束时间:1696118399999 …

java time spring datetime date

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

标签 统计

command-line ×1

console ×1

date ×1

datetime ×1

go ×1

gtk3 ×1

java ×1

pygobject ×1

python ×1

spring ×1

terminal ×1

time ×1