如何以英语和阿拉伯语显示日期格式?
How to show date format in both english and arabic?
你好,我想实现这样的日期格式“2021 نوفمبر”
谁能帮我实现这种格式?
这是我的示例源代码
SimpleDateFormat dateFormatter = new SimpleDateFormat("d MMM yyyy", locale);
dateString = dateFormatter.format(date);
将区域设置设置为“ar”会将日期格式从英语转换为阿拉伯语。
我也用过 DateTimeFormatter
,因为 SimpleDateFormat
是 outdated
fun parseDate() {
var formatter: DateTimeFormatter? = null
val date = "2021-11-03T14:09:31"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")
val dateTime: LocalDateTime = LocalDateTime.parse(date, formatter)
val formatter2: DateTimeFormatter =
DateTimeFormatter.ofPattern(
"yyyy, MMM d", Locale("ar") // set the language in which you want to convert
// For english use Locale.ENGLISH
)
Log.e("Date", "" + dateTime.format(formatter2))
}
}
注意:DateTimeFormatter
只在android8及以上有效,要在android8以下使用启用desugaring
输出:2021 年,3 月 3 日
编辑: :如果您想将数字也转换为阿拉伯语,请使用 withDecimalStyle
和 DateTimeFormatter
.
val formatter2: DateTimeFormatter =
DateTimeFormatter.ofPattern(
"d MMM, yyyy",
Locale("ar")
).withDecimalStyle(
DecimalStyle.of(Locale("ar"))
)
输出: ٣ نوفمبر, ٢٠٢١
日期语言由系统语言决定,但要以特定语言显示日期,不依赖于系统语言。你可以这样做
TextView arabicText = findViewById(R.id.arabic);
TextView englishText = findViewById(R.id.english);
Date date = new Date();
SimpleDateFormat arDate = new SimpleDateFormat("d MMM yyyy", new Locale("ar"));
SimpleDateFormat enDate = new SimpleDateFormat("d MMM yyyy", new Locale("en"));
String ar = arDate.format(date);
String en = enDate.format(date);
arabicText.setText(ar);
englishText.setText(en);
你好,我想实现这样的日期格式“2021 نوفمبر” 谁能帮我实现这种格式?
这是我的示例源代码
SimpleDateFormat dateFormatter = new SimpleDateFormat("d MMM yyyy", locale);
dateString = dateFormatter.format(date);
将区域设置设置为“ar”会将日期格式从英语转换为阿拉伯语。
我也用过 DateTimeFormatter
,因为 SimpleDateFormat
是 outdated
fun parseDate() {
var formatter: DateTimeFormatter? = null
val date = "2021-11-03T14:09:31"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")
val dateTime: LocalDateTime = LocalDateTime.parse(date, formatter)
val formatter2: DateTimeFormatter =
DateTimeFormatter.ofPattern(
"yyyy, MMM d", Locale("ar") // set the language in which you want to convert
// For english use Locale.ENGLISH
)
Log.e("Date", "" + dateTime.format(formatter2))
}
}
注意:DateTimeFormatter
只在android8及以上有效,要在android8以下使用启用desugaring
输出:2021 年,3 月 3 日
编辑: :如果您想将数字也转换为阿拉伯语,请使用 withDecimalStyle
和 DateTimeFormatter
.
val formatter2: DateTimeFormatter =
DateTimeFormatter.ofPattern(
"d MMM, yyyy",
Locale("ar")
).withDecimalStyle(
DecimalStyle.of(Locale("ar"))
)
输出: ٣ نوفمبر, ٢٠٢١
日期语言由系统语言决定,但要以特定语言显示日期,不依赖于系统语言。你可以这样做
TextView arabicText = findViewById(R.id.arabic);
TextView englishText = findViewById(R.id.english);
Date date = new Date();
SimpleDateFormat arDate = new SimpleDateFormat("d MMM yyyy", new Locale("ar"));
SimpleDateFormat enDate = new SimpleDateFormat("d MMM yyyy", new Locale("en"));
String ar = arDate.format(date);
String en = enDate.format(date);
arabicText.setText(ar);
englishText.setText(en);