在 Android 中将日期格式转换为 AM/PM 时输出错误

Raf*_*med 2 datetime android date

我将从服务器yyyy-mm-dd hh:mm:ss收到的日期转换为dd-mm-yyyy hh:mm:ss am/pm

\n\n

我写了下面的代码来做到这一点..

\n\n
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault());\nSimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM-yyyy, hh:mm:ss a", Locale.getDefault());\n\n String out = "";\n inputFormat.setTimeZone(TimeZone.getTimeZone("UTC")); //Also tried GMT+00:00\n\n Date date = inputFormat.parse(str_date);\n\n outputFormat.setTimeZone(TimeZone.getDefault());\n out = outputFormat.format(date);\n\n L.c("The date format for " + str_date + " is " + out);\n\n return out;\n
Run Code Online (Sandbox Code Playgroud)\n\n

一切正常,除非您注意到下面的控制台日志 06:21:48 am、06:09:44 am 以及少数其他人显示 AM 而不是 PM。

\n\n

我的代码有错吗?或者有什么bug吗?

\n\n
04-02 19:13:37.381    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 13:10:19 is 02-04-2015, 06:40:19 pm\n04-02 19:13:37.414    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 13:02:22 is 02-04-2015, 06:32:22 pm\n04-02 19:13:37.436    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 12:51:48 is 02-04-2015, 06:21:48 am\n04-02 19:13:42.191    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 12:39:44 is 02-04-2015, 06:09:44 am\n04-02 19:13:43.484    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 12:17:48 is 02-04-2015, 05:47:48 am\n04-02 19:13:44.990    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 12:10:30 is 02-04-2015, 05:40:30 am\n04-02 19:13:56.347    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 12:00:00 is 02-04-2015, 05:30:00 am\n04-02 19:13:57.228    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 11:58:13 is 02-04-2015, 05:28:13 pm\n04-02 19:13:57.467    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 11:55:18 is 02-04-2015, 05:25:18 pm\n04-02 19:13:58.332    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 11:48:13 is 02-04-2015, 05:18:13 pm\n04-02 19:13:58.563    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 11:42:28 is 02-04-2015, 05:12:28 pm\n04-02 19:14:00.822    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-02 09:54:22 is 02-04-2015, 03:24:22 pm\n04-02 19:14:01.009    4815-4815/in.dummy.app D/ARR\xef\xb9\x95 The date format for 2015-04-01 11:30:33 is 01-04-2015, 05:00:33 pm\n
Run Code Online (Sandbox Code Playgroud)\n

Yau*_*dav 5

str_date 为 24 小时格式

H 小时(0-23), h 上午/下午 (1-12)

 SimpleDateFormat inputFormat = new SimpleDateFormat(
    "yyyy-MM-dd HH:mm:ss", Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)