[英]Storing time elements in a structure in Java
我經常需要操縱時間。 Calendar類適用於處理日期和時間,但我似乎找不到一種簡單的方法,只需將小時,分鍾和秒等元素存儲到某個結構中。 從字符串到實際的整數似乎需要進行大量的轉換。 我總是可以創建自己的類,只是將元素存儲到字段中,但如果存在提供更多功能(增加時間等)但仍保持存儲和訪問簡單的類會更好。 我在尋找這樣的東西:
Time time = new Time();
time.parse("13:30:15");
t.Hour = 13;
t.Minute = 30;
t.Second = 15;
是否存在任何像這樣簡單的Java類。 這就是我現在的表現。 解析小時和分鍾是多么可怕的代碼:
String time = "17:30";
TimeInfo timeInfo = new TimeInfo();
SimpleDateFormat df = new SimpleDateFormat("HH:mm");
Date d = df.parse(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
timeInfo.Hours = calendar.get(Calendar.HOUR_OF_DAY);
timeInfo.Minutes = calendar.get(Calendar.MINUTE);
timeInfo.Seconds = calendar.get(Calendar.SECOND);
class TimeInfo
{
public int Hours;
public int Minutes;
public int Seconds;
public boolean Is24HourFormat;
}
嘗試這種方法
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,17);
cal.set(Calendar.MINUTE,30);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
Date d = cal.getTime();
SimpleDateFormat f =new SimpleDateFormat("hh:mm:ss aa");
System.out.println(f.format(d));
我認為java.util.Calendar
為您提供了所需的一切。 看看Calendar#set() 。
public final void set(int year,int month,int date,int hourOfDay,int minute,int second)
設置字段YEAR,MONTH,DAY_OF_MONTH,HOUR,MINUTE和SECOND的值。 保留其他字段的先前值。 如果不需要,請先調用clear()。
我更喜歡使用Commons Lang的DateUtils。 這與Calendar和DateFormat(SimpleDateFormat)一起應該足以滿足Java中的所有日期要求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.