从int值创建时间对象

时间:2015-01-03 15:30:30

标签: java android

我有两个包含

的int变量
Int hour=13,minute=8;

我想将它们转换为13:08:00.0000000

等格式的时间对象

standard这样做的方式是什么,以及用这个字符串制作时间对象是什么?

最终我会将该时间对象转换回字符串以供使用,但我想标准化字符串。

3 个答案:

答案 0 :(得分:2)

您可以使用Java的日历日期对象。我建议使用JodaTime,非常强大且易于使用。

使用JodaTime

DateTime dt = new DateTime().withHourOfDay(hour).withMinuteOfHour(minute);
DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss.SSS");
String dateString = fmt.print(dt);

答案 1 :(得分:1)

可能不是最聪明的方式,但它应该有效。您可以将小时和分钟更改为String,然后使用SimpleDateFormat对其进行格式化:

String originalString = new Integer(hour).toString()+":"+new Integer(minute).toString()+":00.000000";
Date date = new SimpleDateFormat("HH:mm:ss").parse(originalString);
String newString = new SimpleDateFormat("HH:mm:ss").format(date);

请参阅this

答案 2 :(得分:1)

"标准"这是一个非常抽象的概念,特别是在计算方面,甚至更多的是在Date时间,而且我已经看到人们在做各种疯狂的事情,我会回答我认为是处理它的最佳方式。

<强>操纵

对于运行时处理时间内的一般操作,您应使用Calendar对象,使用静态Calender.getInstance()或使用 GregorianCalendar <直接实例化new / strong>即可。还有其他几个处理相同问题的类,如TimeDate,但所有这些类都有限或不再推荐。 使用此类,您可以使用比较,转换,设置值等。

屏幕表示/格式

要在屏幕上设置Calendar的表示形式(字符串),您可以使用DateFormatSimpleDateFormat。通过调用DateFormat.format(calendar.getTime());

,它们将显示您需要在屏幕上显示的人类可读值

保存/恢复

最后但并非最不重要的是,如果要保存此值(在SharedPreferences,SQL数据库或任何地方),则应使用long作为UNIX EPOCH。自1970年1月1日以来的毫秒数。要在运行时获取当前值,您可以使用System.currentTimeMillis()或从Calendar设置/提取就像Calendar.getTimeInMillis() Calendar.setTimeInMillis(long milliseconds)

一样简单