我在网上上java课,正在努力完成一项作业,我不知道如何做我的老师特别问我们:
创建一个名为dteDate的GregorianCalendar对象。对于年、月、日、时、分和秒,使用parseInt()将这些数字从文件中提取到单独的整数变量中。然后创建GregorianCalendar对象。最后,使用SimpleDateFormat创建一个名为strDate的字符串,其中包含"April 28, 2013 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();
}
}
这将整个文本文件打印到控制台,这是任务的第一步,然后我创建了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());
问题是,日历不能看到小时,分钟或秒,我不知道如何使它导入它们
因为它是类工作,所以我会给你一些提示,让你进一步进行。
首先让我们假设文件格式是固定的。
第一行是日期,第三行是时间。在while循环中,因为你是逐行读取的,所以你当然可以处理哪一行是第一行还是第三行。
然后从第一行开始使用regex(最好)或StringTokenizer取出日期、月份和年份。忽略这一天,因为它无关紧要。
然后再次使用正则表达式或标记器从第三行取出小时、分钟和秒。
检查GregorianCalendar api设置此信息并创建对象。
使用SimpleDateFormat定义所需的日期格式,并传递日期以获得格式化的日期。