我想向中国人和越南人显示lokalize日期,但是不知何故AM / PM不会翻译成越南语。
Locale locale = new Locale("vi","VN");
String p1 = "MMM dd,yyy 'at' h:mm a";
SimpleDateFormat dateFormat = new SimpleDateFormat(p1,locale);
我想向中国人和越南人显示lokalize日期,但是不知何故AM / PM不会翻译成越南语。
Locale locale = new Locale("vi","VN");
String p1 = "MMM dd,yyy 'at' h:mm a";
SimpleDateFormat dateFormat = new SimpleDateFormat(p1,locale);
java.util
日期时间 API 及其格式化 API SimpleDateFormat
已过时且容易出错。建议完全停止使用它们并切换到 modern Date-Time API*。
使用 java.time
(现代日期时间 API)的解决方案:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMM dd,uuuu 'at' h:mm a",new Locale("vi","VN"));
System.out.println(LocalDateTime.of(2021,8,4,10,20).format(dtf));
System.out.println(LocalDateTime.of(2021,20,30).format(dtf));
}
}
样本运行的输出:
thg 8 04,2021 at 10:20 SA
thg 8 04,2021 at 8:30 CH
从 modern Date-Time API 了解有关 Trail: Date Time* 的更多信息。
* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 & 7. 如果您正在为 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring 和 How to use ThreeTenABP in Android Project。
,如果您想显示AM/PM
,则可以尝试使用Locale.ENGLISH
:
Locale locale = Locale.ENGLISH;
String p1 = "MMM dd,yyy 'hiat' h:mm a";
SimpleDateFormat dateFormat = new SimpleDateFormat(p1,locale);
,
对于仍在搜索此主题的任何人,我已经手动编写了它。我上传了 my file here 以防你不想写。
用法:
if (doc.exists)