java - Android SimpleDateFormat,如何使用?

标签 java android

我正在尝试像这样使用 Android SimpleDateFormat:

String _Date = "2010-09-29 08:45:22"
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

try {
    Date date = fmt.parse(_Date);
    return fmt.format(date);
}
catch(ParseException pe) {
    return "Date";    
}

结果很好,我有:2010-09-29

但如果我将 SimpleDateFormat 更改为

SimpleDateFormat("dd-MM-yyyy");

问题是我会得到 03-03-0035 !!!!

为什么以及如何获得像 dd-MM-yyyy 这样的格式?

最佳答案

我假设您想反转日期格式?

SimpleDateFormat 可用于解析和格式化。 您只需要两种格式,一种解析字符串,另一种返回所需的打印输出:

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date = fmt.parse(dateString);

SimpleDateFormat fmtOut = new SimpleDateFormat("dd-MM-yyyy");
return fmtOut.format(date);

从 Java 8 开始:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd").withZone(ZoneOffset.UTC);
TemporalAccessor date = fmt.parse(dateString);
Instant time = Instant.from(date);

DateTimeFormatter fmtOut = DateTimeFormatter.ofPattern("dd-MM-yyyy").withZone(ZoneOffset.UTC);
return fmtOut.format(time);

关于java - Android SimpleDateFormat,如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277747/

相关文章:

java - 使用 Dexter 的 Kotlin 权限转到设置对话框

Android 从 GCM 迁移到 oneSignal 推送通知

android - 创建上传队列

java - 如何通过更改系统级Android路径来移动同一存储中的文件

java - 如何理解PriorityQueue?

java - 如何在 Servlet 链接中使用 while 循环

java - DatePickerDialog 错误地将最小日期强制为 1970 年 1 月 1 日

java - 带有套接字的 ObjectStreams 卡在服务器和客户端 java

Java:神秘的 Java 未捕获异常处理程序 [附代码]

android - 将带有 url 的对象写入 firebase 数据库