我刚开始参加一个计算机科学课程,我找到了这段代码来获取日期和时间。但我并不完全明白这意味着什么。如果有人能澄清那将是非常棒的! :)
long yourmilliseconds = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultdate = new Date(yourmilliseconds);
System.out.print("Date: ");
System.out.println(sdf.format(resultdate));
答案 0 :(得分:1)
long yourmilliseconds = System.currentTimeMillis();
从系统中获取毫秒数
Date resultdate = new Date(yourmilliseconds);
从中创建日期。这两行可以改为
Date resultdate = new Date();
由于JDK1.7和之前的日期没有任何内在格式,因此使用格式化类
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
这是将打印为
的模式 System.out.println(sdf.format(resultdate));
现在我们调用格式化方法并将其打印出来。
答案 1 :(得分:0)
可怕的Wombat很好地解释了你的各个步骤,但还有更多的内容。
首先,学习编程是关于使自己的经历。因此,你接近这个问题的第一步是:获取源代码,而不是将其粘贴到SO问题中......将其粘贴到" public static void main"方法;在公共课堂内;编译它,运行它,看看会发生什么。并开始玩它。
如果这让你有疑问,下一步就是查找javadoc - 你看;您的所有代码都处理标准类;他们都很好documented。
所以,今天的教训:问这里是好的,但要确保你真的尝试首先自己想出这些东西!不仅因为该网站的政策是这样说的,而且因为这可以为您提供最的学习成果!
答案 2 :(得分:0)
那段代码:
请注意,这是两个截然不同的概念。日期时间对象不一个字符串。日期时间对象生成字符串以表示其值。新手程序员经常将两者混为一谈,引起很多困惑和挫折。
不幸的是,代码片段使用了一些旧的遗留日期时间类,现在由java.time类取代。事实证明,旧课程的设计很糟糕,令人困惑,也很麻烦。
捕捉当前时刻的现代方式很简单。 Instant
类表示UTC时间轴中的一个时刻,分辨率高达纳秒。
Instant instant = Instant.now();
要生成以标准ISO 8601格式表示该时刻的字符串,只需致电toString
。
String output = instant.toString();
2016-09-12T05:36:55Z
调整到特定时区(ZoneId
),通过该区域的挂钟时间镜头观察同一时刻。
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
同样,要生成以标准ISO 8601格式表示该时刻的字符串,只需调用toString
即可。实际上,ZonedDateTime
通过在方括号中明智地附加时区名称来扩展标准。
String output = zdt.toString();
2016-09-12T01:36:55-04:00 [美国/蒙特利尔]
要生成其他格式的字符串,请搜索java.time类DateTimeFormatter
的Stack Overflow。