Tag: 格式

Java格式小时和分钟

我需要格式化我的时间字符串,例如: int time = 160; 这是我的示例代码: public static String formatDuration(String minute) { String formattedMinute = null; SimpleDateFormat sdf = new SimpleDateFormat(“mm”); try { Date dt = sdf.parse(minute); sdf = new SimpleDateFormat(“HH mm”); formattedMinute = sdf.format(dt); } catch (ParseException e) { e.printStackTrace(); } return formattedMinute; // int minutes = 120; // int h = minutes / […]

在java的simpledateformat中强制使用4位数年份

我想使用格式为“yyyymmdd”的simpleDateFormat来validation和解析日期。这也允许100624,它被解析为10年(Julius Ceasar去世后54年)。 日期也将像1970年一样,所以我不想与SimpleDateFornat(“yymmdd”)达成和解。 我想知道有没有办法使用SimpleDateFormat强制四位数的年份格式? 我接近做了一个regexp测试,但也许有一种聪明的方法来使用(简单)DateFormat()? 根据要求的代码,事情变得越来越复杂,我的研究只有一半。 使用的格式是yyyy-MM-dd开头(它来自一个变量,它有一个错误的javadoc)。 但是如下面的答案中所示,yyyyMMdd确实强制使用了四年的数字。 所以我的问题改为如何强制“yyyy-MM-dd”格式的四位数年份。 为什么“yyyyMMdd”表现不同? public void testMaturity() { try { SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”); sdf.setLenient(false); System.out.println(” ” + sdf.format(sdf.parse(“40-12-14”))); SimpleDateFormat sdf2 = new SimpleDateFormat(“yyyyMMdd”); sdf.setLenient(false); System.out.println(” ” + sdf2.format(sdf2.parse(“401214”))); fail(); } catch (ParseException pe) { assertTrue(true); } 其中打印0040-12-14

将4位军事时间转换为标准的12小时时间格式

我想做什么: 我正在尝试将4位数的军事时间转换为标准的12小时时间格式,使用冒号和添加的PM或AM而不使用在我的代码之前导入任何内容(我正在制作一个除了java 101技术)。 我的情况: 我有milTime ,我每次运行时都会手动改变它(如声明的最高位,目前为1100),直到我将其转换为方法并提交分配,其中将采用milTime,并将返回milTimeString用于打印主程序。 我目前正在使用BlueJ作为IDE,(我不确定这是否是最好用的?) 输入输出示例: 如果给了0056,我将不得不在早上12:56返回。 如果给出1125,我将不得不在上午11:25返回。 如果给出2359,我将不得不在晚上11:59返回。 我需要帮助的问题 当我执行时,无论是输入11:24还是23:24,我的am / pm布尔值都会在某处失败,它总是输出pm。 可能很明显我工作太难以产生输出,但我不知道一种更简单的方法(除了导入一些东西为我做,我不想这样做)。 我谦卑地接受任何批评我臃肿的当前代码的批评,以及我冗长的请求中的任何更正。 我四处寻找替代答案,一切都涉及我之外的import或知识。 感谢您的时间到目前为止,并提前感谢大家。 public class timeTest { public static void main(String []args) { /*Declare my variables*/ int milTime = 2400; String timeString = “”; boolean pm; /*determine AM or PM and convert over 1200 into a clock’s digits */ […]

在Java中防止String.format(“%。2f”,doubleValue)中的舍入

如何阻止String.format(“%.2f”, doubleValue); 从四舍五入(圆半算法)而不是截断它? 例如 doubleValue = 123.459 格式化后, doubleValue = 123.46 我只想丢弃最后一位数, 123.45 我知道还有其他方法可以做到这一点,我只是想知道使用String.format是否可行。

在Java中打印带有2个小数位的整数

在我的代码中,我使用整数乘以100作为小数(0.1是10等)。 你能帮我格式化输出以显示为十进制吗?

如何在Java中使用String.format()来复制选项卡“\ t”?

我逐行打印数据,希望它像桌子一样组织。 我最初使用firstName + “, ” + lastName + “\t” + phoneNumber 。 但对于一些较大的名字,电话号码被推翻了 我正在尝试使用String.format()来实现此效果。 谁能告诉我要使用的格式语法? 我尝试了String.format(“%s, %s, %20s”, firstName, lastName, phoneNumber) ,但这不是我想要的。 我希望它看起来像这样: 约翰,史密斯123456789 Bob,Madison 123456789 查尔斯,理查兹123456789 编辑:这些答案似乎适用于System.out.println()。 但是我需要它来为JTextArea工作。 我正在使用textArea.setText() 解决了它。 默认情况下,JTextArea不使用等宽字体。 我使用setFont()来改变它,现在它就像一个魅力。 谢谢大家的解决方案。

java DateTimeFormatterBuilder在测试时失败

我有一个简单的DateTimeFormatterBuilder jUnit测试。 在运行时它可以工作,当一些String出现在Spring-MVC hanlder( @RequestParam )上 在测试时,它失败并具有相同的String值。 测试值: 25-May-2018 11:10 待测方法: public void getTimeDifference(@RequestParam String startDate, @RequestParam String endDate) { DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern(“dd-MMM-yyyy HH:mm”).toFormatter(); LocalDateTime.parse(startDate,DATE_TIME_FORMAT); return messages; } 测试方法: @Test public void testFormat() throws Exception { final String startDateFormatA = “25-May-2018 11:10”; final String endDateFormatA = “25-May-2018 11:10”; assertEquals(“06:00”, callDbController.getTimeDifference(startDateFormatA, endDateFormatA)[1]); } 我的测试:在运行时我设置一个断点并在Display-View上测试它: […]

无法解析自定义日期格式。 (JAVA)

我必须在Java中使用自定义日期格式。 它包含微秒,尽管Java不支持微秒。 因为我用零填充时间模式,格式化时工作正常,但我不能用该模式解析日期字符串。 有一个简单的解决方法或我必须自己处理微秒(使用字符串函数)? @Test public void testDateFormat() throws ParseException { DateFormat format = new SimpleDateFormat(“yyyy-MM-dd-HH.mm.ss.SSS000”); String theDate = format.format(new Date()); // this will fail: format.parse(theDate); } java.text.ParseException:无法解析的日期:“2010-01-25-12.40.35.769000”

Java:如何以ISO 8601 SECOND格式获取当前日期

我需要在ISO 8601中获得SS毫秒和HH:MM时区的当前日期 完成日期加上小时,分钟,秒和小数秒:YYYY-MM-DDThh:mm:ss.sTZD(例如1997-07-16T19:20:30.45 + 01:00 ) 请参阅: http : //www.w3.org/TR/NOTE-datetime 我尝试了不同的方法,但我无法得到正确的毫秒和时区数字: DateFormat df=new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSZZ”); df.setTimeZone(TimeZone.getTimeZone(“UTC”)); df.format(new Date()); JAVA结果: 2012-11-24T21:19:27。 758 + 0000 Apache结果: 2012-11-24T21:19:27。 758 + 00:00 (Apache Commons FastDateFormat)

java解析字符串到目前为止

我试图解析2011年3月14日到Java的日期转换器应用程序…我得到2010年12月26日…请帮忙。 import java.util.*; import java.text.*; class date { public static void main(String[] args) { try { String timestampOrig = “11/03/14,15:00:00”; SimpleDateFormat inFormat = new SimpleDateFormat(“YY/MM/dd’,’HH:mm:ss”); Date parseDate = inFormat.parse(timestampOrig); System.out.println(“parsed date: ” + parseDate.toString()); } catch(ParseException pe){ } } } 输出: 解析日期:美国东部时间2010年12月26日15:00:00