datetime—在java中将时间变量转换为hh:mm格式

bn31dyow  于 2021-07-05  发布在  Java
关注(0)|答案(3)|浏览(420)

我是一个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;
}

我会感激你的帮助。

9bfwbjaz

9bfwbjaz1#

你可以试试下面的代码,

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可以解释各种选项的细节。请参考javadochttps://docs.oracle.com/javase/10/docs/api/java/text/simpledateformat.html

r1wp621o

r1wp621o2#

您可以编写一个方法,创建适当的随机小时和随机分钟,然后构造一个 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 方法的参数)。e、 你能做到的 "hh:mm a" 为了 String 就像 10:23 AM .

gmxoilav

gmxoilav3#

既然你用的是 SimpleDateFormat ,我建议看一下它的文档
在那里,你可以看到 h 以am/pm格式表示小时。既然你想要24小时制,你就需要 H 或者 k ,这取决于您希望它是0-23还是1-24

相关问题