我正在尝试使用Calendar Class打印HOUR_OF_DAY,Minute and Second
。
我在我的代码中使用了以下命令。
System.out.println(
Calendar.HOUR+" "+
Calendar.HOUR_OF_DAY+" "+
Calendar.MINUTE+" "+
Calendar.SECOND+" "
);
它给出如下输出:
10 11 12 13
即使我跑了这么几个小时,也会给出相同的输出。
我认为它将以24小时格式打印当前小时。但我没有得到那个输出。
所以我想知道 HOUR_OF_DAY , HOUR 应该打印什么。
请澄清。
答案 0 :(得分:6)
Calendar.HOUR
,Calendar.HOUR_OF_DAY
等只是常量,用于标识日期/时间的各个方面。他们通常像这样使用:
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
我不能轻易想到你想要打印出常量本身的任何情况。
现在即使你使用它,你仍然会通过字符串连接将int
值转换为String
值 - 这不知道你想要什么格式,因为你不是明确指定它。没有“2位数格式int
”这样的东西...... int
只是一个数字。
您应该查看DateFormat
和SimpleDateFormat
- 这是使用标准Java类库格式化日期和时间的首选方法。 (我个人鼓励你研究Joda Time作为一个更好的日期/时间API,但这是另一回事。)
例如:
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
// Prints the current time using 24-hour format
System.out.println(formatter.format(new Date());
答案 1 :(得分:3)
试试这个
Calendar cal = Calendar.getInstance();
System.out.println(
cal.get(Calendar.HOUR)+" "+
cal.get(Calendar.HOUR_OF_DAY)+" "+
cal.get(Calendar.MINUTE)+" "+
cal.get(Calendar.SECOND)+" "
);
答案 2 :(得分:2)
您所做的是打印日历常数值。
使用Calendar cal = Calendar.getInstance();
创建日历实例(这将创建日历实例,当前时间和日期具有默认时区和默认语言环境)
您可以使用HOUR_OF_DAY, HOUR
,cal.get(Calendar.HOUR_OF_DAY)
cal.get(Calendar.HOUR)
的值
答案 3 :(得分:0)
看看GregorianCalender(http://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html)。这可能就是你要找的东西。
答案 4 :(得分:0)
Calendar.HOUR,Calendar.HOUR_OF_DAY,Calendar.MINUTE和Calendar.SECOND是用于访问Calendar对象中的字段的常量。您需要首先创建一个Calendar对象,然后使用这些常量使用get()方法访问其字段。
请尝试java.util.Calendar了解详情。
我被Jon Skeet打败了 - 他的答案非常完美,是一个很好的起点。
答案 5 :(得分:0)
#estimate of beta
a <- c(coefficients(summary(fitexp)))
print(coef <- (a * -1 * 1 / 1)
#estimate of HR
print(HR <- exp(coef))
现代方法使用 java.time 类来取代麻烦的旧( GregorianCalendar ) myCal // Cast from interface `Calendar` to concrete class `GregorianCalendar`.
.toZonedDateTime() // Convert from troublesome old legacy class to modern java.time class.
.getHour() // Extract the hour of the time-of-day portion.
类。
假设您的Calendar
实际上是Calendar
,则进行投射和转换。旧类现在有了新的方法来帮助转换为 java.time 。
GregorianCalendar
是替换ZonedDateTime
的 java.time 类。
GregorianCalendar
现在询问你想要的部分。
GregoriarCalendar gc = ( GregorianCalendar ) myCal ;
ZonedDateTime zdt = gc.toZonedDateTime() ;
提示:您可能需要提取int hour = zdt.getHour() ;
int minute = zdt.getMinute() ;
int second = zdt.getSecond() ;
int nano = zdt.getNano() ;
对象,以表示没有日期且没有时区的时间。
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和&amp; SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要LocalTime
类。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。