乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      時間轉換有關問題:從格式為"yyyy

       點點滴滴 2013-01-23

      時間轉換有關問題:從格式為"yyyy-MM-dd"的日期轉換成距離1970年1月1日的毫秒數(shù),可再從得到的毫秒數(shù)如何也轉換不回去原來的日期(2)

      www.MyException.Cn   發(fā)布于:2011-12-29 22:09:38   瀏覽:27次


      ------解決方案--------------------------------------------------------
      import java.text.ParseException;
      import java.text.SimpleDateFormat;
      import java.util.Date;

      public class IQAUtil
      {

          public static int getSecondsFromDate(String expireDate) {
              if (expireDate == null || expireDate.trim().equals(" "))
                  return 0;
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
              Date date = null;
              try {
                  date = sdf.parse(expireDate);
                  return (int) (date.getTime() / 1000);
              } catch (ParseException e) {
                  e.printStackTrace();
                  return 0;
              }
          }

          public static String getDateFromSeconds(String seconds) {
              if (seconds == null)
                  return " ";
              else {
                  Date date = new Date();
                  try {
                      date.setTime(Long.parseLong(seconds) * 1000);
                  } catch (NumberFormatException nfe) {
                      nfe.printStackTrace();
                      return "Input string: " + seconds
                              + " not correct, eg:2007-01-31 ";
                  }
                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
                  return sdf.format(date);
              }
          }
         

          public static String getDateFromMillisSeconds(String millis) {
              if (millis == null)
                  return " ";
              else {
                  Date date = new Date();
                  try {
                      date.setTime(Long.parseLong(millis));
                  } catch (NumberFormatException nfe) {
                      nfe.printStackTrace();
                      return "Input string: " + millis
                              + " not correct, eg:2007-01-31 ";
                  }
                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
                  return sdf.format(date);
              }
          }
         

          public static void main(String[] arg0) {
              // int i = IQAUtil .getSecondsFromDate( "2007-01-31 ");
              long t = System.currentTimeMillis();
              long i = t / 1000;
              long j = t % 1000;
              System.out.println(i);
              String str = IQAUtil .getDateFromSeconds(String.valueOf(i));
              System.out.println(str);
              str = IQAUtil .getDateFromMillisSeconds(String.valueOf(t));
              System.out.println(str);
          }
      }

      ------解決方案--------------------------------------------------------
      樓上的結果就很正確了,為什么你從毫秒變?yōu)閅YYY-MM-dd的時候知道用data.setTime();但是從YYYY-MM-dd的時候卻不用getTime()呢?
      getTime
      public long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數(shù)。

      返回:
      自 1970 年 1 月 1 日 00:00:00 GMT 以來此日期表示的毫秒數(shù)。

      --------------------------------------------------------------------------------

      setTime
      public void setTime(long time)設置此 Date 對象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的時間點。

      參數(shù):
      time - 毫秒數(shù)。
      現(xiàn)成的方法,不用自己寫

      ------解決方案--------------------------------------------------------
      -------------
      2007-04-31
      -------------
      2007年的4月是沒有31號的,系統(tǒng)沒有算錯,04-31就是05-01。。。。
      ------解決方案--------------------------------------------------------
      當我傳入入值為 "2007-04-31 "字串時返回給我的結果是 "2007-05-01 "
      ================================================================
      我想這種情況你只能自己在程序中控制了,你得保證你傳給date的是一個看上去合法合情合理的數(shù)據(jù),check也很中要啊,這兩個方法很不錯了,給你轉成05-1,你傳一個沒有的值04-31,它肯定不會原樣給你返回,如果是人,你說04-31,他也會告訴你那事5-1
      ------解決方案--------------------------------------------------------
      eyesdragon() ( ) 信譽:97 Blog 2007-3-23 23:28:29 得分: 0

      謝謝兩位,不過我測了zhuokai() 給我改后的代碼跟我之前的一樣得不到正確結果,當我傳入入值為 "2007-04-31 "字串時返回給我的結果是 "2007-05-01 ",而傳入 "2007-03-31 "時返回的結果就時正確的,多試幾次后發(fā)現(xiàn)時而正確時而不正確.還有誰有更好的建議?先謝謝各位啦

      ==========

      month, day 最好不要直接用整數(shù),因為一月是0 。
      用你的方法設置日期,保存的結果是month ,day對12,當月天數(shù)取余之后的日期(也向前進位)。
      比如,2007-01-31 = 2007年2月31日
      但2月沒有31日,多出來了3天,所以
      2007-01-31 = 2007年3月3日
      2007-12-31 = 2008年1月31日



      ------解決方案--------------------------------------------------------
      這個問題不是你處理錯了,而是API理解錯了。

      如果你可以在 getSecondsFromDate 中設置了日期后加一句
      System.out.println(c.getTime());
      就可以很清楚看到問題所在了。
      ------解決方案--------------------------------------------------------
      同意上面的確說法

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多