使用字符串格式化 SimpleDateFormat
Format SimpleDateFormat with strings
所以我有这个代码...
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 或更多),那就太好了
我建议使用 strings.xml
和 SimpleDateFormat
。这将使您在翻译过程中更加灵活。
首先,将此添加到您的 strings.xml
。
<string name="hours">%1$s Hours %2$s Minutes</string>
现在,当您获取此 String
时,您可以插入您的值。
Long hours = 3;
Long minutes = 55;
SimpleDateFormat hourFormatter = new SimpleDateFormat("HH");
SimpleDateFormat minuteFormatter = new SimpleDateFormat("mm");
String text = getString(R.string.hours,
hourFormattter.format(hours),
minuteFormatter.format(minutes)); // 03 Hours 55 Minutes
poaTimeDataText.setText(text);
以后,如果您决定添加翻译、更改措辞,您只需在 strings.xml
中添加更多内容即可,而无需更新此代码。
创建一个字符串变量并像这样将字符串分配给它
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";
}
最后像这样将此字符串设置到您的 textView
poaTimeDataText.setText(separated[0] + hours + separated[1] + minutes);
所以我有这个代码...
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 或更多),那就太好了
我建议使用 strings.xml
和 SimpleDateFormat
。这将使您在翻译过程中更加灵活。
首先,将此添加到您的 strings.xml
。
<string name="hours">%1$s Hours %2$s Minutes</string>
现在,当您获取此 String
时,您可以插入您的值。
Long hours = 3;
Long minutes = 55;
SimpleDateFormat hourFormatter = new SimpleDateFormat("HH");
SimpleDateFormat minuteFormatter = new SimpleDateFormat("mm");
String text = getString(R.string.hours,
hourFormattter.format(hours),
minuteFormatter.format(minutes)); // 03 Hours 55 Minutes
poaTimeDataText.setText(text);
以后,如果您决定添加翻译、更改措辞,您只需在 strings.xml
中添加更多内容即可,而无需更新此代码。
创建一个字符串变量并像这样将字符串分配给它
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";
}
最后像这样将此字符串设置到您的 textView
poaTimeDataText.setText(separated[0] + hours + separated[1] + minutes);