java把秒时长转换为分钟_java - 将秒值转换为小时分钟秒?
java - 将秒值转换为小时分钟秒?
我一直在尝试将秒值(在BigDecimal变量中)转换为editText中的字符串,如“1小时22分33秒”或类似的东西。
我试过这个:
String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");
(我有一个roundThreeCalc,这是秒的值,所以我尝试在这里转换它。)
hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime = hours.toString() + minutes.toString() + seconds.toString();
然后我将editText设置为sequnceCaptureTime String。但那没用。 它每次强制关闭应用程序。 我完全超出了我的深度,非常感谢任何帮助。 快乐的编码!
18个解决方案
183 votes
是否有必要使用BigDecimal? 如果你没有,我会使用int或long for seconds,它会简化一些事情:
hours = totalSecs / 3600;
minutes = (totalSecs % 3600) / 60;
seconds = totalSecs % 60;
timeString = String.format("%02d:%02d:%02d", hours, minutes, seconds);
您可能想要填充每个以确保它们是字符串中的两位数值(或其他)。
Geobits answered 2019-04-10T11:36:36Z
53 votes
你应该有更多的运气
hours = roundThreeCalc.divide(var3600, BigDecimal.ROUND_FLOOR);
myremainder = roundThreeCalc.remainder(var3600);
minutes = myremainder.divide(var60, BigDecimal.ROUND_FLOOR);
seconds = myremainder.remainder(var60);
这将在每次除法后删除小数值。
编辑:如果这不起作用,试试这个。 (我刚刚编写并测试过它)
public static int[] splitToComponentTimes(BigDecimal biggy)
{
long longVal = biggy.longValue();
int hours = (int) longVal / 3600;
int remainder = (int) longVal - hours * 3600;
int mins = remainder / 60;
remainder = remainder - mins * 60;
int secs = remainder;
int[] ints = {hours , mins , secs};
return ints;
}
Haphazard answered 2019-04-10T11:36:04Z
52 votes
DateUtils.formatElapsedTime(long),格式化“MM:SS”或“H:MM:SS”形式的已用时间。 它返回您要查找的String。 你可以在这里找到文档
Blackbelt answered 2019-04-10T11:37:01Z
24 votes
这是工作代码:
private String getDurationString(int seconds) {
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
seconds = seconds % 60;
return twoDigitString(hours) + " : " + twoDigitString(minutes) + " : " + twoDigitString(seconds);
}
private String twoDigitString(int number) {
if (number == 0) {
return "00";
}
if (number / 10 == 0) {
return "0" + number;
}
return String.valueOf(number);
}
Rahim answered 2019-04-10T11:37:27Z
20 votes
Java 8中真正有用的东西
import java.time.LocalTime;
private String ConvertSecondToHHMMSSString(int nSecondTime) {
return LocalTime.MIN.plusSeconds(nSecondTime).toString();
}
Epicurist answered 2019-04-10T11:37:52Z
13 votes
我更喜欢java内置的TimeUnit库
long seconds = TimeUnit.MINUTES.toSeconds(8);
Ajji answered 2019-04-10T11:38:19Z
10 votes
private String ConvertSecondToHHMMString(int secondtTime)
{
TimeZone tz = TimeZone.getTimeZone("UTC");
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
df.setTimeZone(tz);
String time = df.format(new Date(secondtTime*1000L));
return time;
}
SKULL answered 2019-04-10T11:38:37Z
7 votes
这是我的简单解决方案:
String secToTime(int sec) {
int seconds = sec % 60;
int minutes = sec / 60;
if (minutes >= 60) {
int hours = minutes / 60;
minutes %= 60;
if( hours >= 24) {
int days = hours / 24;
return String.format("%d days %02d:%02d:%02d", days,hours%24, minutes, seconds);
}
return String.format("%02d:%02d:%02d", hours, minutes, seconds);
}
return String.format("00:%02d:%02d", minutes, seconds);
}
Test Results:
Result: 00:00:36 - 36
Result: 01:00:07 - 3607
Result: 6313 days 12:39:05 - 545488745
Shohan Ahmed Sijan answered 2019-04-10T11:39:10Z
3 votes
此代码工作正常:
txtTimer.setText(String.format("%02d:%02d:%02d",(SecondsCounter/3600), ((SecondsCounter % 3600)/60), (SecondsCounter % 60)));
Chathura answered 2019-04-10T11:39:35Z
2 votes
这是我解决问题的功能:
public static String getConvertedTime(double time){
double h,m,s,mil;
mil = time % 1000;
s = time/1000;
m = s/60;
h = m/60;
s = s % 60;
m = m % 60;
h = h % 24;
return ((int)h < 10 ? "0"+String.valueOf((int)h) : String.valueOf((int)h))+":"+((int)m < 10 ? "0"+String.valueOf((int)m) : String.valueOf((int)m))
+":"+((int)s < 10 ? "0"+String.valueOf((int)s) : String.valueOf((int)s))
+":"+((int)mil > 100 ? String.valueOf((int)mil) : (int)mil > 9 ? "0"+String.valueOf((int)mil) : "00"+String.valueOf((int)mil));
}
leokash answered 2019-04-10T11:40:02Z
2 votes
因此,我喜欢简单易懂:
int tot_seconds = 5000;
int hours = tot_seconds / 3600;
int minutes = (tot_seconds % 3600) / 60;
int seconds = tot_seconds % 60;
String timeString = String.format("%02d Hour %02d Minutes %02d Seconds ", hours, minutes, seconds);
System.out.println(timeString);
结果将是:01小时23分20秒
Nello answered 2019-04-10T11:40:36Z
2 votes
使用GregorianCalendar这是一个很好而且简单的方法
将这些导入项目:
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Scanner;
然后:
Scanner s = new Scanner(System.in);
System.out.println("Seconds: ");
int secs = s.nextInt();
GregorianCalendar cal = new GregorianCalendar(0,0,0,0,0,secs);
Date dNow = cal.getTime();
SimpleDateFormat ft = new SimpleDateFormat("HH 'hours' mm 'minutes' ss 'seconds'");
System.out.println("Your time: " + ft.format(dNow));
Connor Cowling answered 2019-04-10T11:41:11Z
1 votes
我用这个:
public String SEG2HOR( long lnValue) { //OK
String lcStr = "00:00:00";
String lcSign = (lnValue>=0 ? " " : "-");
lnValue = lnValue * (lnValue>=0 ? 1 : -1);
if (lnValue>0) {
long lnHor = (lnValue/3600);
long lnHor1 = (lnValue % 3600);
long lnMin = (lnHor1/60);
long lnSec = (lnHor1 % 60);
lcStr = lcSign + ( lnHor < 10 ? "0": "") + String.valueOf(lnHor) +":"+
( lnMin < 10 ? "0": "") + String.valueOf(lnMin) +":"+
( lnSec < 10 ? "0": "") + String.valueOf(lnSec) ;
}
return lcStr;
}
cesin answered 2019-04-10T11:41:31Z
1 votes
我知道这很老了但是在java 8中:
LocalTime.MIN.plusSeconds(120).format(DateTimeFormatter.ISO_LOCAL_TIME)
Causteau answered 2019-04-10T11:41:57Z
1 votes
只需几分钟和几秒就可以使用它
String.format("%02d:%02d", (seconds / 3600 * 60 + ((seconds % 3600) / 60)), (seconds % 60))
Asthme answered 2019-04-10T11:42:23Z
0 votes
如果您需要持续时间h,min和sec,您可以使用:
String convertSeconds(int seconds)
int h = seconds/ 3600;
int m = (seconds % 3600) / 60;
int s = seconds % 60;
String sh = (h > 0 ? String.valueOf(h) + " " + "h" : "");
String sm = (m < 10 && m > 0 && h > 0 ? "0" : "") + (m > 0 ? (h > 0 && s == 0 ? String.valueOf(m) : String.valueOf(m) + " " + "min") : "");
String ss = (s == 0 && (h > 0 || m > 0) ? "" : (s < 10 && (h > 0 || m > 0) ? "0" : "") + String.valueOf(s) + " " + "sec");
return sh + (h > 0 ? " " : "") + sm + (m > 0 ? " " : "") + ss;
}
int seconds = 3661;
String duration = convertSeconds(seconds);
这是很多条件运算符。 该方法将返回这些字符串:
0 -> 0 sec
5 -> 5 sec
60 -> 1 min
65 -> 1 min 05 sec
3600 -> 1 h
3601 -> 1 h 01 sec
3660 -> 1 h 01
3661 -> 1 h 01 min 01 sec
108000 -> 30 h
Nicolas answered 2019-04-10T11:43:05Z
0 votes
我在python中使用它将表示秒的浮点数转换为小时,分钟,秒和微秒。 它相当优雅,通过strptime转换为日期时间类型很方便。 如果需要,它也可以很容易地扩展到更长的间隔(数周,数月等)。
def sectohmsus(seconds):
x = seconds
hmsus = []
for i in [3600, 60, 1]: # seconds in a hour, minute, and second
hmsus.append(int(x / i))
x %= i
hmsus.append(int(round(x * 1000000))) # microseconds
return hmsus # hours, minutes, seconds, microsecond
rtphokie answered 2019-04-10T11:43:43Z
0 votes
我已经尝试过最好的方法和更少的代码,但可能有点难以理解我是如何编写代码但如果你擅长数学就很容易
import java.util.Scanner;
上课时间{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double s;
System.out.println("how many second you have ");
s =input.nextInt();
double h=s/3600;
int h2=(int)h;
double h_h2=h-h2;
double m=h_h2*60;
int m1=(int)m;
double m_m1=m-m1;
double m_m1s=m_m1*60;
System.out.println(h2+" hours:"+m1+" Minutes:"+Math.round(m_m1s)+" seconds");
}
}
超过它是准确的!
Abdihakiim yusuf Adan answered 2019-04-10T11:44:40Z
java把秒时长转换为分钟_java - 将秒值转换为小时分钟秒?相关推荐
- java获取视频时长
java获取视频时长 需要一个包,没有的找我要(java-1.0.2-1.0.2.jar) 一个可以通过视频的url地址或者是上传视频 文件有类型为(MultipartFile)的来获取视频的时长. ...
- java 计算有效时长,有一时间段不计算时长
java 计算有效时长,有一时间段不计算时长 计算时效性 计算 2020-08-07 10:10:23 到 2020-08-08 22:10:23 时间段内有多少小时,每天的01:00:00至06:0 ...
- java获取视频时长_Java获取视频的大小、时长
前端上传视频之后,根据上传的视频文件获取视频的大小和时长 1.获取视频时长 private String ReadVideoTime(File source) { Encoder encoder = ...
- java秒转换为年月日_java时间转化为年月日以及将秒转化为天小时分秒字符串显示总结...
注意:php的后台的时间按照秒计算,android按照毫秒计算,所以时间 String getstrtime = Tool.getNormalTime(Long.parseLong(time + &q ...
- java获取视频时长(实测可行)
因为数据库视频表有一段时间丢失维护duration字段, 现在有需求需要用到此字段,只能再重新获取一遍, 更新表.哎!!! 先奉上 https://github.com/opensourceteams ...
- java 获取MP4时长 | Java工具类
目录 简述 Maven依赖 获取结果单位毫秒 获取结果单位秒 总结 简述 获取mp4视频的时长,没啥好说明的. Maven依赖 <dependency><groupId>org ...
- Java计算请假时长(根据规则设置去除节假日、休息日、特殊日期)
首先选择的日期要判断是不是节假日: 这里是写了工具类获取全年的日期信息. dateUtils工具类 某年第一天可以直接拼接 yyyy-01-01 获取节假日方法: public class DateU ...
- java 统计在线时长_如何有效统计app用户在线时长?
Android平台: sdk版本v5.2.0及之后: app的单次使用时长=本次启动的结束时间减去本次启动的开始时间,即end_time减去start_time. 如果在本次启动过程中,应用退到后台运 ...
- java获取时间戳(计算两个时间相差几天几小时几秒,获取当前日期是周几。。。)
java时间相关 博主所有博客都是验证过的 获取一个时间的时间戳 //获取当前时间戳Calendar cal1 = Calendar.getInstance();cal1.setTime(new Da ...
- Java将毫秒时长转换为带单位的时间(天,小时,分钟,秒)
// 毫秒时间戳转换为日.时.分.秒public static String timeStampToDhms(long milliseconds) {long day = TimeUnit.MILLI ...
最新文章
- dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)
- android6.0进入Material Design时代
- IccFileHandler和IccRecords
- asp.net(c#)将彩色图片变灰阶图片
- SAP BCP 超时机制的实现
- 徐波 博士 计算机,徐波教授:医工联合促进智能肿瘤学发展——探秘肿瘤精准治疗中的AI技术...
- QT中的QGridLayout布局
- [C++] string
- 大话css预编译处理(一)通读介绍篇
- 基于flask实现疫情可视化监控系统
- 紫书习题3-6纵横字谜的游戏
- 数字电路加法器 基本原理(一)
- Kotlin:Outdated Kotlin Runtime问题修复
- 【搜索引擎】Google打不开问题解决
- Flutter高德定位定位权限管理
- 故障分析 | 使用--force批量导入数据导致部分数据丢失的问题
- 《卧底经济学》书中精髓:我们如何正确理解“稀缺”这件事儿?
- 使用JMeter的Java Sampler轻松定制自己的benchmark
- ipad和iphone切图_如何在iPhone,iPad和Apple TV上设置Steam Link
- CSS----transform:rotate 旋转基本使用方法
热门文章
- Tomcat-日志格式配置
- 【Allegro学习笔记】表面贴装封装设计过程——0603封装
- python excel公式计算_excel公式函数
- matlab 频散曲线,Matlab绘制频散曲线程序代码
- RFC2544优化步长测试——信而泰网络测试仪实操
- Unbuntu卸载anaconda(最新最全亲测)
- 【AP_EJOR】Robust solutions to multi-objective linear programs with uncertain data(2)
- Fall 2020 Berkeley cs61a hw03答案
- ps vita 说明书
- matlab截取图像像素,图像中获取图像的像素值