try { Date formatDate = simpleDateFormat.parse(date); String dateStr = newSimpleDateFormat.format(formatDate); return dateStr; } catch (ParseException e) { e.printStackTrace(); } return null;
时间: 2024-04-23 10:25:05 浏览: 136
这段代码中,首先使用 simpleDateFormat 对象将 date 字符串解析为一个 Date 对象,然后使用 newSimpleDateFormat 对象将 Date 对象转换为指定格式的字符串。如果解析过程中出现 ParseException 异常,则在控制台输出异常信息,然后返回 null。如果解析成功,则返回指定格式的字符串日期。
相关问题
date工具类
下面是一个Java的Date工具类示例,包含了一些常见的日期时间操作:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/** 默认日期格式 */
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
/** 默认日期时间格式 */
public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* 将日期对象格式化为指定格式的字符串
* @param date 日期对象
* @param format 日期格式
* @return 格式化后的字符串
*/
public static String formatDate(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 将日期字符串解析为日期对象
* @param dateStr 日期字符串
* @param format 日期格式
* @return 日期对象
* @throws ParseException 解析异常
*/
public static Date parseDate(String dateStr, String format) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(dateStr);
}
/**
* 获取当前日期的字符串表示,格式为yyyy-MM-dd
* @return 当前日期的字符串表示
*/
public static String getCurrentDate() {
return formatDate(new Date(), DEFAULT_DATE_FORMAT);
}
/**
* 获取当前日期时间的字符串表示,格式为yyyy-MM-dd HH:mm:ss
* @return 当前日期时间的字符串表示
*/
public static String getCurrentDateTime() {
return formatDate(new Date(), DEFAULT_DATETIME_FORMAT);
}
/**
* 获取指定日期的开始时间,即当天的0点0分0秒
* @param date 日期对象
* @return 开始时间的日期对象
*/
public static Date getDayBegin(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取指定日期的结束时间,即当天的23点59分59秒
* @param date 日期对象
* @return 结束时间的日期对象
*/
public static Date getDayEnd(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
return calendar.getTime();
}
}
```
使用示例:
```java
public static void main(String[] args) throws ParseException {
// 获取当前日期时间
String currentDateTime = DateUtils.getCurrentDateTime();
System.out.println("当前日期时间:" + currentDateTime);
// 将日期字符串解析为日期对象
String dateStr = "2022-01-01";
Date date = DateUtils.parseDate(dateStr, DateUtils.DEFAULT_DATE_FORMAT);
System.out.println("解析后的日期对象:" + date);
// 获取日期的开始时间和结束时间
Date dayBegin = DateUtils.getDayBegin(date);
Date dayEnd = DateUtils.getDayEnd(date);
System.out.println("日期的开始时间:" + DateUtils.formatDate(dayBegin, DateUtils.DEFAULT_DATETIME_FORMAT));
System.out.println("日期的结束时间:" + DateUtils.formatDate(dayEnd, DateUtils.DEFAULT_DATETIME_FORMAT));
}
```
学校需要构建综合系统,使用者包含多种角色。角色Role分两类:学生Student和雇员Employee;雇员又分为教员Faculty和职员Staff。 每个角色都有姓名、性别。学生有学号、班级。一个雇员有工号、入职日期。教员有职称。职员有职位称号。 请以如下Main类为基础,构建各个角色类,将代码补充完整。 public class Main { public static void main(String[] args) { Faculty fac = new Faculty("张三",32,"33006","2019","10","25","讲师"); Student stu=new Student("李四",19,"20201103","202011"); Staff sta = new Staff("王五",27,"32011","2015","06","17","教务员"); fac.show(); sta.show(); stu.show(); } } 输入格式: 无 输出格式: 我是张三,年龄32岁。工号是33006,2019年10月25日入职。是一名教师,讲师职称。 我是王五,年龄27岁。工号是32011,2015年6月17日入职。是一名教务员。 我是李四,年龄19岁。学号是20201103,来自202011班。 输入样例: 在这里给出一组输入。例如: 输出样例: 在这里给出相应的输出。例如: 我是张三,年龄32岁。工号是33006,2019年10月25日入职。是一名教师,讲师职称。 我是王五,年龄27岁。工号是32011,2015年6月17日入职。是一名教务员。 我是李四,年龄19岁。学号是20201103,来自202011班。
```
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public void show() {
System.out.println("我是" + name + ",年龄" + age + "岁。");
}
}
class Employee extends Person {
private String id;
private String hireDate;
public Employee(String name, int age, String id, String hireDate, String dateFormat) throws ParseException {
super(name, age, "未知");
this.id = id;
this.hireDate = formatDate(hireDate, dateFormat);
}
public void show() {
super.show();
System.out.println("工号是" + id + "," + hireDate + "入职。");
}
private String formatDate(String dateStr, String dateFormat) throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf2 = new SimpleDateFormat(dateFormat);
Date date = sdf1.parse(dateStr);
return sdf2.format(date);
}
}
class Faculty extends Employee {
private String title;
public Faculty(String name, int age, String id, String hireDate, String dateFormat, String title) throws ParseException {
super(name, age, id, hireDate, dateFormat);
this.title = title;
}
public void show() {
super.show();
System.out.println("是一名教师," + title + "职称。");
}
}
class Staff extends Employee {
private String jobTitle;
public Staff(String name, int age, String id, String hireDate, String dateFormat, String jobTitle) throws ParseException {
super(name, age, id, hireDate, dateFormat);
this.jobTitle = jobTitle;
}
public void show() {
super.show();
System.out.println("是一名" + jobTitle + "。");
}
}
class Student extends Person {
private String studentNo;
private String className;
public Student(String name, int age, String studentNo, String className) {
super(name, age, "未知");
this.studentNo = studentNo;
this.className = className;
}
public void show() {
super.show();
System.out.println("学号是" + studentNo + ",来自" + className + "班。");
}
}
public class Main {
public static void main(String[] args) throws ParseException {
Faculty fac = new Faculty("张三", 32, "33006", "20191025", "yyyy年M月d日", "讲师");
Student stu = new Student("李四", 19, "20201103", "202011");
Staff sta = new Staff("王五", 27, "32011", "20150617", "yyyy年M月d日", "教务员");
fac.show();
sta.show();
stu.show();
}
}
```
阅读全文