你可以使用 SimpleDateFormat 类,如果日期格式不对,会产生异常。import java.text.*;
import java.util.*;public class TestDate {
    public static void main(String[] args) {
        String dStr = "2001.12.12-08.23.21";
        Date d = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss");
        try {
            d = sdf.parse(dStr);
        } catch (ParseException pe) {
            System.out.println(pe.getMessage());
        }
        System.out.println(d);
        System.out.println(d.getTime());
    }
} 在 java.text 包中找到那个 SimpleDateFormat 类,给它一个模板,可以 parse 成一个 Date,然后使用 Date 类的 getItme() 方法,可以得到一个 Long 数据。模板定义如下:
y        年号,如 1996
M        月份,如 July 或者 07
d        月中第几天,如 12
H        小时(24制),如 0、17
m        分钟,如 32
s        钞钟,如55
S        微钞,如978
E        星期几,如 Tuesday
D        一年中的第几天,如 189
w        week in year            (Number)            27
W        week in month          (Number)            2
a        am/pm er            (Text)              PM
k        hour in day (1~24)      (Number)            24
K        hour in am/pm (0~11)    (Number)            0
z        time zone              (Text)              Pacific Standard Time
'        escape for text        (Delimiter)
''      single quote            (Literal)          '

解决方案 »

  1.   

    我在访问文本时,出现异常:
    /** 
     * 读入一个有关时间安排的文本文件;睡眠直至预定时间,然后发出嘟嘟声
     */
    import java.io.*;
    import java.text.*;
    import java.util.*;
    import javax.swing.*;public class ReminderService  //定义RemiderService类
    {
         class Item  //内部类
         {
    Date due;
    String message;
    Item(Date d, String m) 
    {
           due = d;
           message = m;
    }
          } ArrayList l = new ArrayList();//数组列表 public static void main(String argv[ ]) throws IOException
    {
    ReminderService rs = new ReminderService();
    rs.load();//调用load()方法
    rs.run();//调用run()方法
    } public void load() throws IOException //定义load()方法,用来读取信息
    {
          BufferedReader is = 
                       new BufferedReader(  new FileReader("ReminderService.txt") );
          SimpleDateFormat formatter = 
                       new SimpleDateFormat ("yyyy.MM.dd HH.mm.ss" );
          String aLine;
          while ((aLine = is.readLine())  != null) //判断是否可写
          {
    try
    {
         Date date = formatter.parse(aLine);     //获取Date
         String mesg = aLine.substring(0);       //获取String
         l.add(new Item(date, mesg));  //把Item(Date,String)加到数组中
    }
    catch (ParseException pe) 
    {
                            System.out.println(pe.getMessage());
                       }
          }
    }
    //定义run()方法,根据不同情况,进行相应的操作并且显示不同的信息。
    public void run()  
    {
    System.out.println("ReminderService: Starting at "+ new Date());
    while (!l.isEmpty())  
    {
    Date d = new Date();
    Item i = (Item) l.get(0);
    long interval = i.due.getTime() - d.getTime();
    if (interval>0) 
    {//判断所设定的时间是否过期      System.out.println("Sleeping until" + i.due);
         try 
         { Thread.sleep(interval);      } 
         catch (InterruptedException e)      {                            System.exit(1);//抛出异常
                                     }
                                    
                                     message(i.due + ":" + i.message);                                     }
                                else//如果设定的时间过期,则显示另一个信息
                       {
          message("MISSED" + i.message + "at" + i.due);
                        }
                                 l.remove(0);
                       }
                       System.exit(0);
                 }
                 //定义message()方法,用来显示信息
                  void message(String message)  
                  {
                            System.out.println("007 " + message);
                            JOptionPane.showMessageDialog(null,
                                                 message,
                                                 "定时报警",    // 标题栏
                                                 JOptionPane.WARNING_MESSAGE); // 图标
                   }}我的文本文件ReminderService.txt的内容是:
    2004.12.9 14:28:50
    2002.10.01 14:35:45
    2003.7.06 14:28:10
    2004.11.2 10:11:12为什么会出现异常呢?
    我的日期格式是正确的呀!
      

  2.   

    new SimpleDateFormat ("yyyy.MM.dd HH.mm.ss" );2004.12.9 14:28:50比较一下把,在十分秒那里,一个是:一个是.