[英]Convert date from string “yyyyddmm hh:mm:ss” to String “DD/MM/YYYY” in JAVA
[英]How to convert from Java String to Date of format hh:mm:ss?
从我的 Web 服务方法调用之一返回浮点值的字符串:
例如:375.677、61.47 等。
我研究了堆栈交换问题并尝试了下面的解决方案。 但那是返回无效值。 这是我试过的代码:
float f = Float.parseFloat("375.677");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.add(Calendar.HOUR_OF_DAY, (int) f);
calendar.set(Calendar.MINUTE, (int) ((f * 60) % 60));
calendar.set(Calendar.SECOND, (int) ((f * 3600) % 3600));
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
System.out.println(dateFormat.format(calendar.getTime()));
请让我知道如何解决这个问题。
提前致谢,佐久
只需要 JDK 1.5。
String input = "375.677";
int mins = 0;
int secs = 0;
StringTokenizer st = new StringTokenizer(input, ".");
if (st.hasMoreTokens()) mins = Integer.parseInt(st.nextToken());
if (st.hasMoreTokens()) secs = Integer.parseInt(st.nextToken());
if (st.hasMoreTokens()) throw new IllegalStateException("Second dot not allowed!");
int seconds = mins*60+secs;
int ss = seconds % 60;
seconds = seconds / 60;
int mm = seconds % 60;
seconds = seconds / 60;
int hh = seconds;
System.out.println(String.format("%02d:%02d:%02d", hh, mm, ss));
我猜你的意思是点之前的几分钟,之后的几秒钟,分钟上升到 931,秒上升到 500。如果是这样,请尝试
float f = Float.parseFloat("375.677");
int m = ((int) f);
int s = ((int) (f * 1000)) % 1000;
// handle second overflow
m += s / 60;
s %= 60;
// handle minute overflow
int h = m / 60;
m %= 60;
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, h);
calendar.set(Calendar.MINUTE, m);
calendar.set(Calendar.SECOND, s);
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
System.out.println(dateFormat.format(calendar.getTime()));
将所有内容转换为秒:
String timeString = "234.34";
String[] timeValuesAfterSplit = timeString.split("\\.");
int minutesToSeconds = Integer.parseInt(timeValuesAfterSplit[0]) * 60;
int totalSeconds = minutesToSeconds + Integer.parseInt(timeValuesAfterSplit[1]);
现在使用 LocalTime 获取给定格式的时间:
LocalTime localTime = LocalTime.ofSecondOfDay(totalSeconds);
然后可以通过在localTime
上调用toString()
来获得您需要的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.