java获得计算机时间
我想知道如何告诉这个简单的程序用"computer time - yearOfBirth"
替换"2016-yearOfBirth"
字符串
我不知道如何将计算机时间设置为整数,以及如何继续
public static void main(String[] args) {
Scanner in;
int yearOfBirth, years;
in = new Scanner (System.in);
System.out.print ("Year of Birth: ");
yearOfBirth = in.nextInt();
years = 2016 - yearOfBirth;
System.out.println("You are almost "+years+" years old");
}
# 1 楼答案
# 2 楼答案
tl;博士
使用现代的java。时间课程
看这个code run live at IdeOne.com
爪哇。时间
现代方法使用java。time类取代了与最早版本的Java捆绑在一起的糟糕的日期时间类
LocalDate
^{} 类表示一个只包含日期的值,不包含一天中的时间,也不包含time zone或offset-from-UTC
时区对于确定日期至关重要。在任何一个特定的时刻,世界各地的日期都因地区而异。例如,在Paris France午夜后几分钟是新的一天,而在Montréal Québec仍然是“昨天”
如果未指定时区,JVM将隐式应用其当前默认时区。该默认值可能在运行时(!)期间change at any moment,因此,您的结果可能会有所不同。最好将所需/预期时区明确指定为参数
以
Continent/Region
的格式指定一个proper time zone name,例如America/Montreal
、Africa/Casablanca
或Pacific/Auckland
。切勿使用2-4个字母的缩写,如EST
或IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)如果要使用JVM的当前默认时区,请请求它并将其作为参数传递。如果省略,代码将变得模棱两可,我们无法确定您是否打算使用默认值,或者您是否像许多程序员一样不知道这个问题
或者指定一个日期。你可以用一个数字来设置月份,1-12月的数字为1-12
或者,更好的方法是使用预定义的^{} 枚举对象,一年中每个月一个。提示:在整个代码库中使用这些} &^{}
Month
对象,而不仅仅是一个整数,以使代码更加自我记录,确保有效值,并提供type-safety。同上^{逝去的岁月
要确定年龄,请使用日期时间数学。在数年内,没有月日,使用^{}
对于年、月、日,使用^{} 类
您可以询问
Period
的年数关于java。时间
java.time框架内置于Java8和更高版本中。这些类取代了麻烦的旧legacy日期时间类,如^{} 、^{} 、&^{}
现在位于maintenance mode的Joda-Time项目建议迁移到java.time类
要了解更多信息,请参阅Oracle Tutorial。并搜索堆栈溢出以获得许多示例和解释。规范是JSR 310
您可以交换java。时间对象直接与数据库连接。使用符合JDBC 4.2或更高版本的JDBC driver。不需要字符串,也不需要
java.sql.*
类在哪里可以获得java。时间课
{a38}项目扩展了java。额外上课的时间。这个项目是将来可能添加到java的一个试验场。时间您可以在这里找到一些有用的类,例如^{} 、^{} 、^{} 和more