/** * 时间格式化 * * @param dateStr * @param format * @return */ private Date parseDate(String dateStr, SimpleDateFormat format) { try { return format.parse(dateStr); } catch (Exception e) { log.error("时间格式转换错误!e:", e); throw new BizException("时间格式转换错误,dateStr:" + dateStr); } }
时间: 2023-02-12 22:50:06 浏览: 128
这是一个在 Java 中使用 SimpleDateFormat 类来将时间字符串转换为日期的函数。它首先尝试使用 SimpleDateFormat 对象将时间字符串转换为日期,如果转换失败,则会捕获异常并记录错误信息,并抛出一个业务异常。
相关问题
java时间格式转换工具类代码
以下是一个Java时间格式转换工具类的示例代码:
```
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
/**
* 将字符串转换为日期
*
* @param dateStr 日期字符串
* @param pattern 日期格式
* @return 日期
* @throws ParseException
*/
public static Date parseDate(String dateStr, String pattern) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.parse(dateStr);
}
/**
* 将日期转换为字符串
*
* @param date 日期
* @param pattern 日期格式
* @return 日期字符串
*/
public static String formatDate(Date date, String pattern) {
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
/**
* 将日期字符串从一种格式转换为另一种格式
*
* @param dateStr 原日期字符串
* @param sourcePattern 原日期格式
* @param targetPattern 目标日期格式
* @return 目标日期字符串
* @throws ParseException
*/
public static String convertDate(String dateStr, String sourcePattern, String targetPattern) throws ParseException {
Date date = parseDate(dateStr, sourcePattern);
return formatDate(date, targetPattern);
}
/**
* 将日期字符串从一种格式转换为另一种格式,默认日期格式为"yyyy-MM-dd HH:mm:ss"
*
* @param dateStr 原日期字符串
* @param targetPattern 目标日期格式
* @return 目标日期字符串
* @throws ParseException
*/
public static String convertDate(String dateStr, String targetPattern) throws ParseException {
return convertDate(dateStr, DEFAULT_PATTERN, targetPattern);
}
}
```
使用示例:
```
public static void main(String[] args) throws ParseException {
String dateStr = "2022-10-01 12:00:00";
String sourcePattern = "yyyy-MM-dd HH:mm:ss";
String targetPattern = "yyyy/MM/dd HH:mm:ss";
Date date = DateUtils.parseDate(dateStr, sourcePattern);
System.out.println(date);
String formattedDate = DateUtils.formatDate(date, targetPattern);
System.out.println(formattedDate);
String convertedDate = DateUtils.convertDate(dateStr, sourcePattern, targetPattern);
System.out.println(convertedDate);
}
```
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));
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)