try { Date formatDate = simpleDateFormat.parse(date); String dateStr = newSimpleDateFormat.format(formatDate); return dateStr; } catch (ParseException e) { e.printStackTrace(); } return null;
时间: 2024-04-23 16:25:05 浏览: 13
这段代码中,首先使用 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));
}
```
用java写一个日期工具类,里面有提取时间的年月日、把字符串转成日期、把日期转成方法字符串、判断两个日期大小等方法,要求有详细 的使用备注,防止空指针
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
// 提取时间的年月日
public static String getYearMonthDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
return year + "-" + month + "-" + day;
}
// 把字符串转成日期
public static Date parseDate(String dateStr, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = null;
try {
date = sdf.parse(dateStr);
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
// 把日期转成字符串
public static String formatDate(Date date, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateStr = null;
try {
dateStr = sdf.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return dateStr;
}
// 判断两个日期大小
public static boolean compareDate(Date date1, Date date2) {
if (date1 == null || date2 == null) {
throw new NullPointerException("date1 or date2 can not be null.");
}
return date1.before(date2);
}
}
```
使用备注:
1. getYearMonthDay(Date date) 方法用于提取时间的年月日,参数date为需要提取的日期,返回值为年-月-日格式的字符串。
2. parseDate(String dateStr, String pattern) 方法用于把字符串转成日期,参数dateStr为需要转换的字符串,pattern为日期格式,返回值为转换后的日期。
3. formatDate(Date date, String pattern) 方法用于把日期转成字符串,参数date为需要转换的日期,pattern为日期格式,返回值