Java日历始终显示相同的时间
下面是我的代码Java日历始终显示相同的时间,java,calendar,Java,Calendar,下面是我的代码 public class TestCalendar { public static void main(String[] args){ int unique_id = Integer.parseInt("" + Calendar.HOUR + Calendar.MINUTE + Calendar.SECOND); System.out.println(unique_id); } } 日历时间应该给我 get和set的公共静态最终整小时
public class TestCalendar {
public static void main(String[] args){
int unique_id = Integer.parseInt("" + Calendar.HOUR + Calendar.MINUTE
+ Calendar.SECOND);
System.out.println(unique_id);
}
}
日历时间应该给我
get和set的公共静态最终整小时字段号,表示上午或下午的时间
下午小时用于12小时时钟(0-11)。中午和午夜由0表示,而不是0
到12点。例如,在晚上10:04:15.250,时间是10点
不管我运行这段代码多少次,它总是给我相同的唯一id(101213),我机器上的本地时间是下午1:30。我做错了什么
谢谢
Calendar.HOUR
、Calendar.MINUTE
和Calendar.SECOND
是Calendar
类的public static int
字段。它们的价值是
- 日历小时:10
- 日历分钟:12点和12点
- 日历秒:13李>
字符串
串联只是附加此值。要阅读日历
,您可以这样做
calendar.get(Calendar.HOUR);
calendar.get(Calendar.MINUTE);
Calendar.HOUR
、Calendar.MINUTE
和Calendar.SECOND
是Calendar
类的public static int
字段。它们的价值是
- 日历小时:10
- 日历分钟:12点和12点
- 日历秒:13李>
字符串
串联只是附加此值。要阅读日历
,您可以这样做
calendar.get(Calendar.HOUR);
calendar.get(Calendar.MINUTE);
您的代码只是连接常量,日历定义这些常量以标识某些字段。要获取这些字段的值,请调用
Calendar.get()
,并将常量标识符作为参数传递:
public class TestCalendar {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
int unique_id = Integer.parseInt("" + c.get(Calendar.HOUR) + c.get(Calendar.MINUTE)
+ c.get(Calendar.SECOND));
System.out.println(unique_id);
}
}
上述方法可行,但结果远远不是唯一的ID。
要获得一个唯一标识一个时间点的ID(以毫秒为单位),请考虑.< /p> 您的代码只是连接常数,日历定义了标识它的一些字段。要获取这些字段的值,请调用
Calendar.get()
,并将常量标识符作为参数传递:
public class TestCalendar {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
int unique_id = Integer.parseInt("" + c.get(Calendar.HOUR) + c.get(Calendar.MINUTE)
+ c.get(Calendar.SECOND));
System.out.println(unique_id);
}
}
上述方法可行,但结果远远不是唯一的ID。
若要获得唯一标识时间点的ID(以毫秒为单位),请考虑.< /P> < P> <代码>日历。小时<代码>(或<代码>分钟>代码>代码>第二代码>第二代码>是一个指示符,它指示我们要从<代码>日历< /Calp>实例中提取哪个字段,而不是值,例如,我们希望“从日历对象提取小时”,如下所示:
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY); // in 24-hours,
// or c.get(Calendar.HOUR) in 12-hours.
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int weekday = c.get(Calendar.DAY_OF_WEEK);
int weekOfYear = c.get(Calendar.WEEK_OF_YEAR);
Calendar.HOUR
(或MINUTE
,SECOND
)只是一个指示符,指示我们要从Calendar
实例中提取哪个字段,而不是值,即我们要从Calendar对象中提取小时,如下所示:
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY); // in 24-hours,
// or c.get(Calendar.HOUR) in 12-hours.
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int weekday = c.get(Calendar.DAY_OF_WEEK);
int weekOfYear = c.get(Calendar.WEEK_OF_YEAR);
我不确定什么是需求,但是如果你想要系统时间,那么你可以使用这个“system.currentTimeMillis()”我不确定什么是需求,但是如果你想要系统时间,那么你可以使用这个“system.currentTimeMillis()”对于那些仍然有一些问题的人,就像我一样,特别是当您要多次打印时,您可能需要使用新的,如下所示:
System.out.println(""+new GregorianCalendar().get(Calendar.HOUR_OF_DAY)+":"+new GregorianCalendar().get(Calendar.MINUTE)+":"+new GregorianCalendar().get(Calendar.SECOND)+":"+new GregorianCalendar().get(Calendar.MILLISECOND));
对于那些像我一样对此仍有一些问题的人,特别是当您想打印多次时,您可能需要使用新的,如以下所示:
System.out.println(""+new GregorianCalendar().get(Calendar.HOUR_OF_DAY)+":"+new GregorianCalendar().get(Calendar.MINUTE)+":"+new GregorianCalendar().get(Calendar.SECOND)+":"+new GregorianCalendar().get(Calendar.MILLISECOND));
Calendar
这里是一个类,而不是实例引用的变量名,因此调用非静态的get(int字段)
方法将无法编译。@WilliamPrice那么,我应该先做一个Calendar的getInstance,然后再做一个getmethod吗?@davida是的,我真的不希望它是“唯一的”。我只想注册用户注册的时间。它不一定非得非常精确。非常感谢。@Kraken是的,您需要一个日历的实例。我看见大卫a。用一个例子更新了他的答案。Calendar
这里是一个类,而不是引用实例的变量名,因此调用非静态的get(int字段)
方法将无法编译。@WilliamPrice那么我应该先做一个Calendar的getInstance,然后再做一个getmethod吗?@davida是的,我真的不希望它是“唯一的”。我只想注册用户注册的时间。它不一定非得非常精确。非常感谢。@Kraken是的,您需要一个日历的实例。我看见大卫a。用一个例子更新了他的答案。你到底想达到什么目的?如果您只是试图获取一个唯一的值,那么下到第二个值无论如何都不太可能实现,但是您可以在不进行任何字符串处理或日历访问的情况下实现。要基于时间获取唯一的id,您最好使用calendar。getTimeInMillis()@Jayaraj使用毫秒可以获得更高的精度,但仍然不具备“唯一性”在许多情况下,您似乎试图获得的将在时间01:01:23、01:12:03、11:02:03、13:01:23、13:12:03和23:02:03为您提供相同的“唯一”ID,即1123。想知道你想要它有多独特吗?在任何情况下,在2018年使用LocalTime
from获取一天中的时间作为数字Calendar
已经过时很久了,而且java.time
非常适合使用。可能LocalTime.toSecondOfDay()
可以给你一个合适的ID。你到底想达到什么目的?如果您只是试图获取一个唯一的值,那么下到第二个值无论如何都不太可能实现,但是您可以在不进行任何字符串处理或日历访问的情况下实现。要基于时间获取唯一的id,您最好使用calendar。getTimeInMillis()@Jayaraj使用毫秒可以获得更高的精度,但仍然不具备“唯一性”在许多情况下,您似乎试图获得的将在时间01:01:23、01:12:03、11:02:03、13:01:23、13:12:03和23:02:03为您提供相同的“唯一”ID,即1123。想知道你想要它有多独特吗?在任何情况下,在2018年使用LocalTime
from获取一天中的时间作为数字<代码>日历
为lo