Làm thế nào để bạn nhận được Giờ và Phút kể từ Date.getHours
và Date.getMinutes
không được chấp nhận? Các ví dụ mà tôi tìm thấy trên tìm kiếm của Google đã sử dụng các phương pháp không dùng nữa.Java: getMinutes và getHours
Trả lời
Từ Javadoc cho Date.getHours
As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY)
Vì vậy, sử dụng
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
và tương đương cho getMinutes.
Thứ nhất, nhập khẩu java.util.Calendar
Calendar now = Calendar.getInstance();
System.out.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE));
Hãy thử Calender. Sử dụng getInstance để lấy Calender-Object. Sau đó, sử dụng setTime để đặt Ngày bắt buộc. Bây giờ bạn có thể sử dụng get (int field) với hằng số thích hợp như HOUR_OF_DAY hoặc lâu hơn để đọc các giá trị bạn cần.
http://java.sun.com/javase/6/docs/api/java/util/Calendar.html
Tôi khuyên bạn nên xem quảng cáo thời gian joda. http://www.joda.org/joda-time/
Tôi sợ thêm một thư viện khác vào dự án dày của mình, nhưng nó dễ dàng và nhanh chóng và thông minh và tuyệt vời. Plus, nó chơi đẹp với mã hiện có, ở một mức độ nào đó.
Hãy thử sử dụng Joda Time thay vì các lớp java.util.Date chuẩn. Thư viện thời gian Joda có API tốt hơn nhiều để xử lý ngày tháng.
DateTime dt = new DateTime(); // current time
int month = dt.getMonth(); // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day
Xem điều này question vì ưu và nhược điểm khi sử dụng thư viện Thời gian Joda.
Thời gian Joda cũng có thể được đưa vào một số phiên bản Java trong tương lai dưới dạng thành phần chuẩn, xem JSR-310.
Nếu bạn phải sử dụng lớp java.util.Date và java.util.Calendar truyền thống, xem của javadoc của họ để được giúp đỡ (java.util.Calendar và java.util.Date).
Bạn có thể sử dụng các lớp truyền thống như thế này để tìm nạp các trường từ phiên bản Date cụ thể.
Date date = new Date(); // given date
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date); // assigns calendar to given date
calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
calendar.get(Calendar.HOUR); // gets hour in 12h format
calendar.get(Calendar.MONTH); // gets month number, NOTE this is zero based!
Mặc dù tôi không khuyên bạn nên làm như vậy, tôi nghĩ rằng điều đáng nói là mặc dù nhiều phương thức trên java.util.Date đã không được chấp nhận nhưng chúng vẫn hoạt động. Trong các tình huống nhỏ, có thể sử dụng chúng. Ngoài ra, java.util.Calendar là khá chậm, vì vậy getMonth và getYear on Date có thể hữu ích nhanh hơn.
import java.util.*
Bạn có thể gethour và minute bằng cách sử dụng lớp lịch và trình định dạng. Calendar cal = Calendar.getInstance()
và Formatter fmt=new Formatter()
và thiết lập một định dạng cho giờ hiển thị và phút fmt.format("%tl:%M",cal,cal)
và in System.out.println(fmt)
show đầu ra như 10:12
java.thời gian
Khi tôi là người hâm mộ của Joda-Time, Java 8 giới thiệu gói java.time, đây là giải pháp tiêu chuẩn Java đáng giá nhất! Đọc bài viết này, Java SE 8 Date and Time, để có một lượng thông tin tốt về java.time ngoài giờ và phút.
Cụ thể, hãy xem lớp LocalDateTime
.
giờ và phút:
LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();
Đây là câu trả lời hay nhất. Bạn có thể muốn cung cấp múi giờ rõ ràng để nhắc nhở người đọc và bản thân rằng đây là một hoạt động nhạy cảm múi giờ: 'LocalDateTime.now (ZoneId.of (" Asia/Manilla "))'. Đọc 'now()' chỉ một lần cho tính nhất quán (thời gian sẽ chuyển giữa hai cuộc gọi). Nếu ngày thực sự không liên quan, 'LocalTime' cũng hoạt động. –
int hr=Time.valueOf(LocalTime.now()).getHours();
int minutes=Time.valueOf(LocalTime.now()).getMinutes();
Những chức năng sẽ trở lại int giá trị trong giờ và phút.
Trùng lặp. Cách tiếp cận này đã được đề cập trong [Trả lời bởi J.D.] (http://stackoverflow.com/a/29270120/642706). –
Đó có phải là 'java.sql.Time' không? Chắc chắn không có lý do gì để đưa lớp học đã lỗi thời đó vào chơi khi bạn có 'java.time.LocalTime'. Bạn đang quá phức tạp. –
public static LocalTime time() {
LocalTime ldt = java.time.LocalTime.now();
ldt = ldt.truncatedTo(ChronoUnit.MINUTES);
System.out.println(ldt);
return ldt;
}
này làm việc cho tôi
Thanh lịch. Bạn có thể muốn giải thích lý do tại sao nó hoạt động. –
- 1. Java đơn giản Dấu thời gian để chuyển đổi ngày
- 2. Tôi có nên sử dụng getHours() hoặc getUTCHours cho Javascript của tôi không?
- 3. Lỗi Java với JAXB và Java 1.6
- 4. Getters và Setters Java
- 5. Java (J2SE) và Bluetooth
- 6. Java và MSMQ
- 7. Valgrind và Java
- 8. Mảng Java và PostgreSQL
- 9. Tomcat6 và Java 7
- 10. JAVA: FileInputStream và FileOutputStream
- 11. WCF và Java
- 12. Generics Java và JNI
- 13. Java NIO và SSL
- 14. Java và crossdomain.xml
- 15. Java - TreeSet và hashCode()
- 16. Java - readObject() và setSoTimeout()
- 17. jQuery và Java applet
- 18. JAVA_HOME và java -version
- 19. Generics và varargs Java
- 20. Gurobi và java và giải pháp trống
- 21. Nhận chênh lệch thời gian giữa hai lần trong javascript
- 22. Java và Nagle minh họa
- 23. Java: Phông chữ và Pixel
- 24. loại thô và Generics - Java
- 25. C++ và Java trong Android
- 26. Java: Exception OutOfMemoryError và freeMemory()
- 27. Maven Groovy và Java + Lombok
- 28. BufferedReader và InputStreamReader trong Java
- 29. So sánh C# và Java
- 30. Executor và Daemon trong Java
Vì vậy, ... làm thế nào để làm việc này nếu tôi muốn để có được những giờ kể từ khi một ngày mà không tương ứng với bây giờ? – Michael
Xem http://stackoverflow.com/questions/8150155/java-gethours-getminutes-and-getseconds – Mark