0

我在网上上 Java 课,正在为一项作业苦苦挣扎,我不知道该怎么做,我的教学特别问我们:
“创建一个名为 dteDate 的 GregorianCalendar 对象。对于年、月、日、小时、分钟和秒,从使用 parseInt() 将文件转换为单独的整数变量。然后创建您的 GregorianCalendar 对象。最后,使用 SimpleDateFormat 创建一个名为 strDate 的字符串,其中包含“2013 年 4 月 28 日 12:41”。换句话说,我希望您了解如何从文件中提取一系列字符串,将它们转换为整数,创建一个 GregorianCalendar 对象,然后将其转换回格式化字符串。当然不是最有效的方法,但它会测试你创建日期变量的能力。
我不知道如何从文本文件中提取特定行,以及如何提取整个内容,并且希望我的程序看起来像这样的指导。

import java.io.*;
import java.nio.file.*;
import java.util.GregorianCalendar;
public class a19010
{

public static void main(String[] args) 
  {
    Path objPath = Paths.get("dirsize.txt");  
    if (Files.exists(objPath))

    {
        File objFile = objPath.toFile();
        try(BufferedReader in = new BufferedReader(
                                new FileReader(objFile)))
        {
            String line = in.readLine();

            while(line != null)
            {
                System.out.println(line);
                line = in.readLine();
            }

        }    
      catch (IOException e)
      {
        System.out.println(e);  
      }
    }
    else
    {
     System.out.println(
             objPath.toAbsolutePath() + " doesn't exists");   
    }   

    GregorianCalendar dteDate = new GregorianCalendar();
  }
}

这会将整个文本文件打印到控制台,这是 assinment 的第一步,然后我创建了 GregorianCalendar dteDate。我不确定如何提取我需要为我的日历提供相关信息的行,以及在这个程序的这一点上做什么。我不想在这篇文章中说太多话,让我的问题更难回答,所以我会从文本文件中发布相关行,如果我需要在我的问题中添加更多信息或取出一些信息或澄清让我知道我会编辑它。文本文件中带有日期和时间的行是其中的前4行,如下所示:(放入类似的代码以使其清楚)

The current date is: Thu 03/28/2013    
Enter the new date: (mm-dd-yy)  
The current time is: 12:41:26.31
Enter the new time:  

如果有人知道该怎么做,或者甚至可以为我指明正确的方向,我将不胜感激。

这是我在 Bhushan Bhangale 的帮助下获得的代码,但我无法导入我的日历。

String line = in.readLine();
        int lineNum = 1;
        //extract the month
        String monthSubstring = line.substring(25,27);
        int month = Integer.parseInt(monthSubstring) -1 ;
        //extact the year
        String yearSubstring = line.substring(31,35);
        int year = (Integer.parseInt(yearSubstring));
        //extract the date
        String daySubstring = line.substring(28,30);
        int day = Integer.parseInt(daySubstring);

        while(line != null)
        {
            System.out.println(line);
            line = in.readLine();
            lineNum ++;

         if (lineNum == 3)
         {
           //extract the hour
            String hourSubstring = line.substring(21,23);
            int hour = Integer.parseInt(hourSubstring); 
            //extract the minute
            String minuteSubstring = line.substring(24,26);
            int minute = Integer.parseInt(minuteSubstring);
            //extract the second
            String secondSubstring = line.substring(27,29);
            int second= Integer.parseInt(secondSubstring);
           }
       } 
     GregorianCalendar dteDate = new GregorianCalendar(year, month, day, hour, minute, second);
        System.out.println(dteDate.getTime());  

问题是日历看不到小时分钟或秒,我不知道如何让它导入它们

4

1 回答 1

1

由于它的课堂作业,我将为您提供进一步的提示。

首先让我们假设文件格式是固定的。

第一行有日期,第三行有时间。在 while 循环中,因为您正在逐行阅读,所以您肯定可以处理哪一个是第一行或第三行。

然后从第一行使用 regex (preferable) 或 StringTokenizer 取出日期、月份和年份。忽略这一天,因为它无关紧要。

然后从第三行再次使用正则表达式或标记器取出小时、分钟和秒。

检查 GregorianCalendar api 以设置此信息并创建对象。

使用 SimpleDateFormat 定义所需的日期格式并传递日期以获取格式化日期。

于 2013-04-19T05:38:56.850 回答