1. java時間轉換 0點被轉化成24點
請使用 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
而不是回答 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss ");
2. 在java中Calendar.HOUR_OF_DAY返回的是一個什麼時間,

獲取當前時間,然後set到Calendar里邊,然後從里邊獲取的是當前時間的東西,
如果你set的date是你自己給定的,那麼獲取到的就是你給定的date。
3. SimpleDateFormat 12小時制和24小時制的區別
格式化時間為12小時制的,則使用hh:mm:ss如果希望格式化時間為24小時制的,則使用HH:mm:ss
在使用SimpleDateFormat時格式化時間的yyyy.MM.dd 為年月日而如果希望格式化時間為12小時制的,則使用hh:mm:ss如果希望格式化時間為24小時制的,則使用HH:mm:ss
Datedate =  new  Date();
SimpleDateFormat  sdformat =  new  SimpleDateFormat("yyyy.MM.dd   HH:mm:ss  a  ZZZ");
String  LgTime  =  formatter.format(LoginDate1);
結過為24小時:星期四  2005.07.14   11:07:812  上午  +0800
Date類,已經很少用了。更多使用的是Calendar
Calendar date  =  Calendar.getInstance();
date.get(Calendar.HOUR_OF_DAY );//得到24小時機制的
date.get(Calendar.HOUR);//  得到12小時機制的
當然,SimpleDateFormat也可以格式化24機制或者12小時機制。
H   0-23
k   1-24
----------------
K   0-11
h   1-12 

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。
4. java 中cal.get(Calendar.HOUR_OF_DAY) 取小時 如果是中午12點取值為0 我怎麼樣才能取到12
cal.get(Calendar.HOUR_OF_DAY) 取的就是24時鍾數
cal.get(Calendar.HOUR) 取的就是12時鍾數
看一下它們的注釋就清楚了。
    /**
     * Field number for <code>get</code> and <code>set</code> indicating the
     * hour of the morning or afternoon. <code>HOUR</code> is used for the
     * 12-hour clock (0 - 11). Noon and midnight are represented by 0, not by 12.
     * E.g., at 10:04:15.250 PM the <code>HOUR</code> is 10.
     *
     * @see #AM_PM
     * @see #HOUR_OF_DAY
     */
    public final static int HOUR = 10;
    /**
     * Field number for <code>get</code> and <code>set</code> indicating the
     * hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
     * E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22.
     *
     * @see #HOUR
     */
    public final static int HOUR_OF_DAY = 11;
如果使用的是cal.get(Calendar.HOUR),可能通過cal.get(Calendar.AM_PM)的返回值來判斷是上午還是下午,如果返回0,則是上午,如果返回1,則是下午。判斷的時候,最好用類定義的常量來比較。
if(Calendar.AM==cal.get(Calendar.AM_PM)){
//上午
}else /*if(Calendar.PM==cal.get(Calendar.AM_PM))*/{
//下午
}
5. java 怎麼獲取今天的早上九點和晚上六點
這是java推薦的寫法
Calendarc=Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY,6);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
Datem6=c.getTime();
晚上9點就是21點,與上面相同
6. java定時器 每天凌晨 固定執行一個方法
可以通過以下方式實現,
public class TimerManager {
 //時間間隔
 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; 
 public TimerManager() {
Calendar calendar = Calendar.getInstance();   
  /*** 定製每日:00執行方法 ***/
  calendar.set(Calendar.HOUR_OF_DAY, 2);
  calendar.set(Calendar.MINUTE, 0);
  calendar.set(Calendar.SECOND, 0);
   
  Date date=calendar.getTime(); //第一次執行定時任務的時間
   
  //如果第一次執行定時任務的時間 小於 當前的時間
  //此時要在 第一次執行定時任務的時間 加一天,以便此任務在下個時間點執行。如果不加一天,任務會立即執行。
  if (date.before(new Date())) {
      date = this.addDay(date, 1);
  }
   
  Timer timer = new Timer();
   
  NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
  //安排指定的任務在指定的時間開始進行重復的固定延遲執行。
  timer.schele(task,date,PERIOD_DAY);
 }
 
 // 增加或減少天數
 public Date addDay(Date date, int num) {
  Calendar startDT = Calendar.getInstance();
  startDT.setTime(date);
  startDT.add(Calendar.DAY_OF_MONTH, num);
  return startDT.getTime();
 }
  
}
public class NFDFlightDataTimerTask extends TimerTask {
 
 private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);
 
 @Override
 public void run() {
  try {
   //在這里寫你要執行的內容
    
  } catch (Exception e) {
   log.info("-------------解析信息發生異常--------------");
  }
 }
}
 
public class NFDFlightDataTaskListener implements ServletContextListener {
 public void contextInitialized(ServletContextEvent event) {
  new TimerManager();
 } 
 public void contextDestroyed(ServletContextEvent event) {
 }
 
}
然後要在web.xml裡面配置監聽器
<listener>
 <listener-class>
  com.listener.NFDFlightDataTaskListener
 </listener-class>
</listener>
7. 怎樣用java做個定時器,每個星期一中午12點整執行doXX這一動作。越詳細越好.用監聽哥跪謝!
主類:
package tiwen4;  import java.util.Calendar; import java.util.Timer;  public class quartz { 	public static void main(String[] args) { 		try{ 			Calendar cal = Calendar.getInstance();//設置定時時間 			cal.add(Calendar.DATE, 0);//表示從今天的12點開始跑起來,如果當前時間超過12點會馬上跑一次,否則等12點再跑第一次 			cal.set(Calendar.HOUR_OF_DAY, 12);//24小時制的,12就是中午12點 			cal.set(Calendar.MINUTE, 0);//分 			cal.set(Calendar.SECOND, 0);//秒 			 			Timer processTimer = new Timer(); 			processTimer.scheleAtFixedRate(new ProcessClass(), cal.getTime(), 86400000);//86400000是24小時,即24小時跑一次 			 		}catch(Exception e){ 			e.printStackTrace(); 		}finally{ 		} 	} }
定時器調用的類--我在這里只是輸出了一下~你也可以自己加函數:
package tiwen4;  import java.util.TimerTask;  public class ProcessClass extends TimerTask {  	@Override 	public void run() { 		// TODO Auto-generated method stub         System.out.println("輸出了哈哈");// 	}  } 
我上面用的只是一種方式,其實定時方式有很多的linux和window都有自帶的定時器,可以直接調用,也可以用上面所說的quartz包帶的框架等等