Java 从int值生成时间对象
我有两个int变量,包含Java 从int值生成时间对象,java,android,Java,Android,我有两个int变量,包含 Int hour=13,minute=8; 我想将它们转换为类似于13:08:00.0000000 标准的方法是什么,用这个字符串来创建时间对象 最终,我会将该时间对象转换回字符串以供使用,但我想标准化该字符串。您可以使用Java的日历或日期对象。我建议使用,非常强大和易于使用 与乔达蒂姆 DateTime dt = new DateTime().withHourOfDay(hour).withMinuteOfHour(minute); DateTimeFormatt
Int hour=13,minute=8;
我想将它们转换为类似于13:08:00.0000000
标准的方法是什么,用这个字符串来创建时间对象
最终,我会将该时间对象转换回字符串以供使用,但我想标准化该字符串。您可以使用Java的日历或日期对象。我建议使用,非常强大和易于使用
与乔达蒂姆
DateTime dt = new DateTime().withHourOfDay(hour).withMinuteOfHour(minute);
DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss.SSS");
String dateString = fmt.print(dt);
您可以使用Java的日历或日期对象。我建议使用,非常强大和易于使用
与乔达蒂姆
DateTime dt = new DateTime().withHourOfDay(hour).withMinuteOfHour(minute);
DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss.SSS");
String dateString = fmt.print(dt);
也许这不是最聪明的方法,但它应该会起作用。您可以将小时和分钟更改为字符串,然后使用SimpleDataFormat对其进行格式化:
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);
请参见可能不是最聪明的方法,但它应该会起作用。您可以将小时和分钟更改为字符串,然后使用SimpleDataFormat对其进行格式化:
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);
参见“标准”是一个非常抽象的概念,特别是在计算领域,更是在日期时间方面,我见过人们做各种疯狂的事情,我将回答我认为最好的处理方法
操作:
对于运行时处理时间期间的常规操作,您应该使用对象,或者使用静态日历.getInstance()
,或者使用新建
直接实例化GregorianCalendar
。还有其他几个类处理相同的问题,如Time
或Date
,但它们都是有限的,或者不再推荐。
通过这个类,您可以使用它来比较、转换、设置值等
屏幕显示/格式:
要在屏幕上格式化日历的表示形式(字符串),可以使用或。它们将通过调用DateFormat.format(calendar.getTime()),使您需要在屏幕上显示的可读值成为人类可读的值代码>
保存/还原:
最后但并非最不重要的一点是,如果要保存此值(在SharedReferences、SQL数据库或任何地方),则应使用long
作为UNIX文件。自1970年1月1日以来的毫秒数。要在运行时获取当前值,您可以使用System.currentTimeMillis()
或从日历中设置/提取与日历一样简单。getTimeInMillis()
日历。setTimeInMillis(长毫秒)
“标准”是一个非常抽象的概念,特别是在计算中,甚至在日期时间方面,我见过人们做各种疯狂的事情,我会回答我认为最好的解决方法
操作:
对于运行时处理时间期间的常规操作,您应该使用对象,或者使用静态日历.getInstance()
,或者使用新建
直接实例化GregorianCalendar
。还有其他几个类处理相同的问题,如Time
或Date
,但它们都是有限的,或者不再推荐。
通过这个类,您可以使用它来比较、转换、设置值等
屏幕显示/格式:
要在屏幕上格式化日历的表示形式(字符串),可以使用或。它们将通过调用DateFormat.format(calendar.getTime()),使您需要在屏幕上显示的可读值成为人类可读的值代码>
保存/还原:
最后但并非最不重要的一点是,如果要保存此值(在SharedReferences、SQL数据库或任何地方),则应使用long
作为UNIX文件。自1970年1月1日以来的毫秒数。要在运行时获取当前值,您可以使用System.currentTimeMillis()
或从日历中设置/提取与日历一样简单;同一位作者的优点是,它“准备”您使用Java8的日期/时间API(JSR310;threetenbp是“310 BackPort”),但他不知道该库。谢谢事实上,如果可以的话,用3TENBP代替Joda时间;同一位作者的优点是,它“准备”您使用Java8的日期/时间API(JSR310;threetenbp是“310 BackPort”),但他不知道该库。谢谢