java - 在java中将时间变量转换为hh:mm格式
问题描述
我是 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;
}
感谢您的帮助。
解决方案
您可以编写一个方法来创建适当的随机小时和随机分钟,然后构造其中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"
为String
s like制作它10:23 AM
。
推荐阅读
- javascript - 如何根据索引获得由两条新行分隔的字符串?
- javascript - ReactJS 中的自动状态突变 - 问题
- javascript - 如何在javascript中将两个数组值添加到一个数组中
- vb.net - 如何等到 WebBrowser 包含 VB.NET 中的任何文本?
- python - 我不能在 Python 中将矩阵除以浮点数吗?
- c# - 两个数字之间的随机数不溢出
- spring - 如何将两个组件应用于视图中的单个路由器?
- google-bigquery - 如何使用 DML 语法在 BigQuery 中插入带有 RECORD 字段的记录?
- javascript - 如何使用 Jest Mock 模块测试 Redux Thunk 异步操作
- matlab - 如何使用矩阵作为 MATLAB 分类学习器的预测器?