-1

我是 java 的初学者,我使用下面的代码可以生成"hh:mm:ss"格式的随机时间。我不知道如何调整我的代码以“hh:mm”格式显示时间,因为我不熟悉日期和时间 java 库。我在这里检查了帖子,例如在 java 中将时间从 hh:mm:ss 转换为 hh:mm ,但在这里没有帮助。

import java.util.Random;
import java.sql.Time;
    
final Random random = new Random();
final int millisInDay = 24*60*60*1000;
Time time = new Time((long)random.nextInt(millisInDay));

我也试过:

// creates random time in hh:mm format for 0-12 hours but I want the full 24 hour timeline 
public static String createRandomTime() {   
    DateFormat format = new SimpleDateFormat("h.mm aa");
    String timeString = format.format(new Date()).toString();
    return timeString;
}

感谢您的帮助。

4

3 回答 3

2

您可以编写一个方法来创建适当的随机小时和随机分钟,然后构造其中java.time.LocalTime的一个并返回所需的String表示。

这是一个例子:

public static String createRandomTime() {
    // create valid (in range) random int values for hours and minutes
    int randomHours = ThreadLocalRandom.current().nextInt(0, 23);
    int randomMinutes = ThreadLocalRandom.current().nextInt(0, 59);
    // then create a LocalTime from them and return its String representation
    return LocalTime.of(randomHours, randomMinutes).format(
                            // using a desired pattern
                            DateTimeFormatter.ofPattern("HH:mm")
    );
}

main像这样执行该方法十次

public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
        System.out.println(createRandomTime());
    }
}

将产生类似(不一定等于)的输出

08:16
07:54
17:15
19:41
14:24
12:00
12:33
11:00
09:11
02:33

请注意,如果您只想要另一种格式,则从它们创建的int值和对应值LocalTime不会改变。您可以轻松地将模式切换到另一个模式(也许使模式String成为方法的参数)。例如,您可以"hh:mm a"Strings like制作它10:23 AM

于 2020-09-03T14:06:00.370 回答
1

由于您使用的是SimpleDateFormat,我建议您查看其文档

在那里,您可以看到hAM/PM 格式的小时数。由于您想要 24h 格式,因此您需要Hor k,具体取决于您希望它是 0-23 还是 1-24

于 2020-09-03T13:59:14.453 回答
1

您可以尝试使用以下代码,

public void testDateFormat() {
    String format = "HH:mm"; //24 hours format
    //hh:mm aa for 12 hours format
    DateFormat dateFormat = new SimpleDateFormat(format);
    String date = dateFormat.format(new Date());
    System.out.println(date);
}

有一个很棒的 Javadoc 可用于解释各种选项的详细信息。请同时参考 Javadoc https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html

于 2020-09-03T14:05:21.907 回答