我正在尝试将 System.currentTimeMillis 转换为 (hh:mm:ss) 的当前时间格式。到目前为止,这是我尝试过的,但效果不佳。
Long currentTime = System.currentTimeMillis();
int hours;
int minutes;
int seconds;
String getSecToStr = currentTime.toString();
String getTimeStr = getSecToStr.substring(8,13);
seconds = Integer.parseInt(getTimeStr);
minutes = seconds / 60;
seconds -= minutes * 60;
hours = minutes / 60;
minutes -= hours * 60;
String myResult = Integer.toString(hours) + ":" + Integer.toString(minutes) + ":" + Integer.toString(seconds);
System.out.println("Current Time Is: " + myResult);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?非常感激!
您可以使用一些对象来简化此操作,例如SimpleDateFormat
和Date
。
首先准备磨坊的时间:
Long currentTime = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)
选择您的desier格式SimpleDateFormat
:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)
创建您的日期对象:
Date date = new Date(currentTime);
Run Code Online (Sandbox Code Playgroud)
将该格式应用到您的日期对象中:
String time = simpleDateFormat.format(date);
Run Code Online (Sandbox Code Playgroud)
记录一下:
Log.d(TAG, "onCreate: " + time);
Run Code Online (Sandbox Code Playgroud)
结果:
17:05:73
Run Code Online (Sandbox Code Playgroud)
不需要System.currentTimeMillis();
。使用java.time类。
LocalTime.now( \n ZoneId.of( "America/Montreal" )\n)\n.truncatedTo( \n ChronoUnit.SECONDS\n)\n.toString()\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n\n12:34:56
\n
现代方法使用java.time类。永远不要使用可怕的Date
和Calendar
类。
要获取当前时间需要时区。对于任何给定时刻,全球各地的时间(和日期)都会因区域而异。
\n\nZoneId z = ZoneId.of( "Australia/Sydney" ) ;\n
Run Code Online (Sandbox Code Playgroud)\n\n捕获一天中的当前时间,如该特定地区(该时区)的人们使用的挂钟时间所示。获取一个LocalTime
对象。
LocalTime lt = LocalTime.now( z ) ;\n
Run Code Online (Sandbox Code Playgroud)\n\n如果您想要 UTC 而不是特定区域,请传递ZoneOffset.UTC
常量。
显然你想跟踪一天中的时间到整秒。所以让\xe2\x80\x99s去掉小数秒。
\n\nLocalTime lt = LocalTime.now( z ).truncatedTo( ChronoUnit.SECONDS ) ;\n
Run Code Online (Sandbox Code Playgroud)\n\n通过调用 生成标准 ISO 8601 格式的文本toString
。
String output = lt.toString() ;\n
Run Code Online (Sandbox Code Playgroud)\n\njava.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧遗留日期时间类,例如java.util.Date
, Calendar
, & SimpleDateFormat
。
Joda -Time项目现在处于维护模式,建议迁移到java.time类。
\n\n要了解更多信息,请参阅Oracle 教程。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310。
\n\n您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC 驱动程序。不需要字符串,不需要类。java.sql.*
从哪里获取 java.time 类?
\n\n 归档时间: |
|
查看次数: |
12405 次 |
最近记录: |