格式简单日期使用字符串格式化

所以我有这个代码...


SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:minutes");



poaTimeDataText.setText(timeFormatter.format(getIntent().getLongExtra(

                ShiftLogsFragment.EXTRA_POA_TIME, 0)));

现在,我希望它显示为 2 小时 40 分钟,而不是显示例如 02:40 分钟。但是,我已经尝试过,将模式更改为但编译器不喜欢这样。如何获得所需的结果?"HH hours mm minutes"


编辑:如果它占单数或复数,如小时或小时,分钟(如果0或1)或分钟(如果2或更多)会很好


繁花不似锦
浏览 89回答 2
2回答

明月笑刀无情

创建一个 String 变量,并像这样将字符串分配给它String myString = timeFormatter.format(getIntent().getLongExtra(ShiftLogsFragment.EXTRA_POA_TIME, 0))然后像这样拆分字符串String[] separated = myString.split(":");现在,您只有每个变量separated[0]; // this will contain "hours"separated[1]; // this will contain "minutes"定义两个变量String hours = "";String minutes = "";做一些测试if (separated[0].equals("0") || separated[0].equals("1")) {   hours = "hour";} else {   hours = "hours";}if (separated[1].equals("0") || separated[1].equals("1")) {   minutes = "minute";} else {   minutes = "minutes";}最后将此字符串设置为文本查看如下所示poaTimeDataText.setText(separated[0] + hours + separated[1] + minutes);

白衣非少年

我建议使用.这将为您提供更大的翻译灵活性。strings.xmlSimpleDateFormat首先,将其添加到您的 .strings.xml<string name="hours">%1$s Hours %2$s Minutes</string>现在,当您获取此内容时,可以插入值。StringLong hours = 3;Long minutes = 55;SimpleDateFormat hourFormatter = new SimpleDateFormat("HH");SimpleDateFormat minuteFormatter = new SimpleDateFormat("mm");String text = getString(R.string.hours,&nbsp;&nbsp; &nbsp; &nbsp; hourFormattter.format(hours),&nbsp;&nbsp; &nbsp; &nbsp; minuteFormatter.format(minutes)); // 03 Hours 55 MinutespoaTimeDataText.setText(text);&nbsp;&nbsp;将来,如果您决定添加翻译,更改措辞,则可以添加更多内容,而不是更新此代码。strings.xml
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java