免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2711 | 回复: 4
打印 上一主题 下一主题

(时间类Date的问题)为什么parse,不同时间得到long的值是一样? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-16 16:49 |只看该作者 |倒序浏览
为什么parse,不同时间得到long的值是一样?
D:\search>java test 12:00 21:00
2006-05-16 12:00:00
2006-05-16 21:00:00
1147708800000
1147708800000
1147769011313
0
判断开始时间是否在结束时间之前:false

import java.text.*;
import java.util.Date;
public class test
{
   public static void main(String args[])
   {
      
           String BeginTime;  //蜘蛛运行开始的时间
       String EndTime;    //蜘蛛运行结束的时间
          
           if (args.length>=2) //如果参数大于三个
           {
             BeginTime=args[0];
         EndTime=args[1];
           }else{
             BeginTime="00:00";
         EndTime="00:00";
            }
                 
       Date  date  =  new  Date();
       SimpleDateFormat format = new SimpleDateFormat();
       format.applyPattern("yyyy-MM-dd");
       String LBeginTime = format.format(date);
       LBeginTime=LBeginTime+" "+BeginTime+":00";
       String LEndTime = format.format(date);
       LEndTime=LEndTime+" "+EndTime+":00";
        System.out.println("判断开始时间是否在结束时间之前:"+ isDateBefore1(LBeginTime,LEndTime));  

   }
   public static boolean isDateBefore1(String date1,String date2){
      DateFormat df = DateFormat.getDateInstance();
      try {
         Date  d  =  new  Date();
         System.out.println(date1);
         System.out.println(date2);
         Date d1 = df.parse(date1);
         Date d2 = df.parse(date2);
         long d1Long = d1.getTime();
         long d2Long = d2.getTime();
         long d3Long = d.getTime();
         System.out.println(d1Long);
         System.out.println(d2Long);
         System.out.println(d3Long);
         System.out.println(d2Long-d1Long);
         if(d2Long-d1Long>0)
        {return true;}
        else{ return false;}
      }
      catch(ParseException e) {
         System.out.println("Unable to parse ");
         return false;
      }
    }  
   
   
}

论坛徽章:
0
2 [报告]
发表于 2006-05-18 12:50 |只看该作者
你该指定格式的地方没指定,不需要指定格式的地方却指定了

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
        public static void main(String args[]) {

                String BeginTime; // 蜘蛛运行开始的时间
                String EndTime; // 蜘蛛运行结束的时间

                if (args.length >= 2) // 如果参数大于三个
                {
                        BeginTime = args[0];
                        EndTime = args[1];
                } else {
                        BeginTime = "00:00";
                        EndTime = "00:00";
                }

                Date date = new Date();
                SimpleDateFormat format = new SimpleDateFormat();
                format.applyPattern("yyyy-MM-dd");
                String LBeginTime = format.format(date);
                LBeginTime = LBeginTime + " " + BeginTime + ":00";
                String LEndTime = format.format(date);
                LEndTime = LEndTime + " " + EndTime + ":00";
                System.out.println("判断开始时间是否在结束时间之前:"
                                + isDateBefore1(LBeginTime, LEndTime));

        }

        public static boolean isDateBefore1(String date1, String date2) {
                //DateFormat df = DateFormat.getDateInstance();
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                try {
                        Date d = new Date();
                        System.out.println(date1);
                        System.out.println(date2);
                        Date d1 = df.parse(date1);
                        Date d2 = df.parse(date2);
                        long d1Long = d1.getTime();
                        long d2Long = d2.getTime();
                        long d3Long = d.getTime();
                        System.out.println(d1Long);
                        System.out.println(d2Long);
                        System.out.println(d3Long);
                        System.out.println(d2Long - d1Long);
                        if (d2Long - d1Long > 0) {
                                return true;
                        } else {
                                return false;
                        }
                } catch (ParseException e) {
                        System.out.println("Unable to parse ");
                        return false;
                }
        }

}

论坛徽章:
0
3 [报告]
发表于 2006-05-18 16:12 |只看该作者
艾, 这个formatter其实带来的麻烦还不少, 之前一阵子曾经因为TimeZone的问题折腾了好久.

论坛徽章:
0
4 [报告]
发表于 2006-05-19 02:40 |只看该作者
我在一个计时成程序的main里面就设置
Properties props = System.getProperties();
props.setProperty("user.timezone", "GMT");
免得计时器老是以08:00:00开始
这个设置全局有效。

论坛徽章:
0
5 [报告]
发表于 2006-05-22 10:16 |只看该作者
恩, 我觉得还是应该用,
formater.setTimeZone(TimeZone.getDefault());
这样比设置property要好一点.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP