- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在转换来自服务器的时间时遇到问题,我想将其转换为 24 小时制。我正在使用以下代码:
String timeComeFromServer = "3:30 PM";
SimpleDateFormat date12Format = new SimpleDateFormat("hh:mm a");
SimpleDateFormat date24Format = new SimpleDateFormat("HH:mm");
thử {
((TextView)findViewById(R.id.ahmad)).setText(date24Format.format(date12Format.parse(timeComeFromServer)));
} catch (ParseException e) {
e.printStackTrace();
}
出现错误:
Method threw 'java.text.ParseException' exception.)
详细的错误信息是:
Unparseable date: "3:30 PM" (at offset 5)
但是如果我将 PM
替换为 p.m.
它可以正常工作,如下所示:
timeComeFromServer = timeComeFromServer.replaceAll("PM", "p.m.").replaceAll("AM", "a.m.");
谁能告诉我哪种方法是正确的?
1 Câu trả lời
SimpleDateFormat
使用系统的默认区域设置(您可以使用 java.util.Locale
类检查,调用 Locale.getDefault()
).此语言环境是特定于设备/环境的,因此您无法控制它,并且在每个设备中可能会产生不同的结果。
并且某些语言环境可能具有不同的 AM/PM 字段格式。示例:
Date d = new Date();
System.out.println(new SimpleDateFormat("a", new Locale("es", "US")).format(d));
System.out.println(new SimpleDateFormat("a", Locale.ENGLISH).format(d));
输出是:
p.m.
PM
要不依赖于此,您可以在格式化程序中使用 Locale.ENGLISH
,这样您就不会依赖于系统/设备的默认配置:
String timeComeFromServer = "3:30 PM";
// use English Locale
SimpleDateFormat date12Format = new SimpleDateFormat("hh:mm a", Locale.ENGLISH);
SimpleDateFormat date24Format = new SimpleDateFormat("HH:mm");
System.out.println(date24Format.format(date12Format.parse(timeComeFromServer)));
输出是:
15:30
第二个格式化程序不需要特定的语言环境,因为它不处理特定于语言环境的信息。
旧类(Ngày
,Calendar
VàSimpleDateFormat
)有lots of problemsVà design issues ,并且它们正在被新的 API 取代。
一个细节是 SimpleDateFormat
始终与 Ngày
对象一起使用,它具有完整的时间戳(自 1970-01-01T00 以来的毫秒数:00Z
),并且两个类都隐式使用系统默认时区 behind the scenes ,这可能会误导您并产生意想不到且难以调试的结果。但在这种特定情况下,您只需要时间字段(小时和分钟),无需使用时间戳值。新的 API 针对每种情况都有特定的类,效果更好,也更不容易出错。
在 Android 中,您可以使用 ThreeTen Backport ,Java 8 的新日期/时间类的一个很好的反向移植。为了让它工作,你还需要 ThreeTenABP (更多关于如何使用它的信息 đây).
Bạn có thể sử dụng org.threeten.bp.format.DateTimeFormatter
并将输入解析为 org.threeten.bp.LocalTime
:
String timeComeFromServer = "3:30 PM";
DateTimeFormatter parser = DateTimeFormatter.ofPattern("h:mm a", Locale.ENGLISH);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
LocalTime time = LocalTime.parse(timeComeFromServer, parser);
System.out.println(time.format(formatter));
输出是:
15:30
对于这种特定情况,您还可以使用 time.toString()
来获得相同的结果。可以引用javadoc有关向后移植 API 的更多信息。
关于android - 将 12 (PM/AM)Hour AM PM 时间中的字符串转换为 24 小时时间 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661194/
Gần đây tôi đã thêm một số tệp .gif vào /drawable để có thể sử dụng chúng với các nút. Cách này hoạt động tốt (không có lỗi). Bây giờ khi tôi xây dựng lại/chạy ứng dụng của mình, tôi nhận được lỗi sau: Lỗi: Gradle: Đang thực thi
Có phương pháp nào trong Android để trả về đường dẫn dữ liệu lưu trữ nội bộ không? Tôi có 2 điện thoại thông minh Android (Samsung S2 và S7 Edge) mà tôi đã cài đặt một ứng dụng. Tôi muốn sử dụng sqlit nằm trong đường dẫn này
Câu hỏi này đã có câu trả lời tại đây: Sự khác biệt giữa "?android:" và "@android:" trong tệp xml bố cục Android là gì
Tôi chỉ muốn biết sự khác biệt thực sự giữa điện thoại Android phát triển, điện thoại Android gốc và điện thoại Android gốc. Chúng tôi không thể mua bộ công cụ phát triển từ cửa hàng thực tế hoặc bất kỳ nơi nào khác ngoại trừ Android Marketplace.
Tôi đang cố gắng đưa dự án này lên chuẩn mực kể từ khi Gradle được cập nhật. Đây là một dự án nhóm và sử dụng plugin android-apt. Tôi đã thực hiện các thay đổi cú pháp cần thiết (bộ xử lý biên dịch->thực hiện và apt->chú thích), nhưng trình biên dịch vẫn báo với tôi là có
Tôi mới làm quen với Android và Kotlin nên xin lỗi vì một vấn đề rất đơn giản cần giải quyết! Tôi đã tạo một ứng dụng cơ bản bằng cách sử dụng Navigation Architecture Component, sử dụng thanh điều hướng ở dưới cùng và ba tùy chọn điều hướng. Mỗi tùy chọn điều hướng sẽ trỏ tới một đoạn chuyên dụng.
Hiện tại tôi đang sử dụng SDK chính thức của Facebook dành cho Android. Tôi đang sử dụng ứng dụng mẫu nâng cao nhưng tôi không biết cách để nó lấy tường ứng dụng/luồng/trạng thái thay vì người dùng đã đăng nhập. Liệu điều này có thể thực hiện được không? Trong tình huống đó
Tôi gặp vấn đề khi tải tệp xuống, tôi có thể tải tệp xuống trong trình giả lập nhưng lại không tải được trên điện thoại của tôi. Tôi đã xác định quyền truy cập Internet và ghi vào thẻ SD. Tôi có một tệp doc trên máy chủ, nếu người dùng nhấp vào tải xuống. Nó tải tập tin xuống. Điều này hoạt động tốt trong trình mô phỏng nhưng
Câu hỏi này đã có câu trả lời ở đây: Sự khác biệt giữa gravity và layout_gravity trong Android là gì? (22 câu trả lời) Đã đóng 9
Có ai có thể cho tôi biết bộ nhớ đệm Android và bộ nhớ đệm ứng dụng là gì không vì khi chúng ta nói về ứng dụng dọn bộ nhớ đệm thì nó làm gì, khái niệm dọn bộ nhớ đệm là để dọn bộ nhớ đệm ứng dụng hay giống như quản lý bộ nhớ lưu trữ chính, RAM, bộ nhớ đệm khác nhau và theo như tôi biết thì bộ nhớ đệm
Giả sử các ứng dụng Foo và Eggs nằm trên cùng một thiết bị Android. Bất kỳ ứng dụng nào cũng có thể nhận được danh sách tất cả các ứng dụng trên thiết bị. Liệu một ứng dụng có thể biết được ứng dụng khác đã chạy hay chưa và chạy trong bao lâu không? 1 Câu trả lời
Tôi hơi bối rối, tôi chỉ thấy ví dụ từ Android sang PC hoặc ngược lại. Tôi cần tạo một ứng dụng Android để kết nối hai điện thoại (Android) để trò chuyện video. Tôi đang nghĩ, tôi biết
Được sử dụng để khóa màn hình theo chương trình bằng Android. Tôi có một số ý tưởng hay từ những câu hỏi trước đây về vấn đề này trên Stackoverflow và tôi đã làm khá tốt, nhưng khi tôi chạy đoạn mã đó, không có ngoại lệ hay lỗi nào cả. Ngoài ra, màn hình không bị khóa. Xin hãy sử dụng đoạn văn này
Tài liệu nói rằng: android:layout_alignParentStart Nếu đúng, làm cho cạnh bắt đầu của chế độ xem này khớp với cạnh bắt đầu
Tôi không biết sự khác biệt giữa hai tính chất và chiều cao này. Lấy TextView làm ví dụ, nếu tôi đặt layout_width thành wrap_content và đặt chiều rộng thành 50 dip, điều gì sẽ xảy ra? 1 Câu trả lời
Hai tính chất này liên quan với nhau như thế nào? Nếu tôi có android:noHistory="true", thì việc có android:finishOnTaskLaunch="true" có ý nghĩa gì không? Câu trả lời tốt nhất giả định rằng bạn có
Tôi mới làm quen với Android và đang cố gắng hiểu mã XML sau: Khi xem tài liệu trên developer.android.com, bạn sẽ thấy "starStyle" là hằng số trong R.attr, public static final
Trong đoạn mã sau, tại sao giao diện của nút radio lại thay đổi khi tôi đặt android:layout_width="fill_parent" và android:width="fill_parent" Tôi đang nói
Thật khó để biết nên hỏi gì ở đây. Câu hỏi này mơ hồ, không đầy đủ, quá rộng hoặc mang tính tu từ và không thể trả lời hợp lý theo hình thức hiện tại. Để được trợ giúp làm rõ vấn đề này để có thể mở lại, hãy truy cập trung tâm trợ giúp. Đóng 9
Giả sử tôi có một hàm fun myFunction(name:String, email:String){}, khi tôi gọi hàm này myFunction('Ali', 'ali@test.com ') thì thế nào
Tôi là một lập trình viên xuất sắc, rất giỏi!