在Excel中的日期格式,其数值为距离1900年1月1日的天数,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。
在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,
创建一个日期格式,再将单元格的内容以这个日期格式显示出来。如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了。具体代码如下:
if (0 == cell.getCellType()) {
//判断是否为日期类型
if(HSSFDateUtil.isCellDateFormatted(cell)){
//用于转化为日期格式
Date d = cell.getDateCellValue();
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
str[k] = formater.format(d);
}else{
// 用于格式化数字,只保留数字的整数部分
DecimalFormat df = new DecimalFormat("########");
str[k] = df.format(cell.getNumericCellValue());
在Excel中的日期格式,其数值为距离1900年1月1日的天数,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,创建一...
当将这些数据导出到
Excel
表格
中
时,可能会出现
日期
或时间
格式
不正确的问题,例如,
日期
和时间被转换为带小数点的数字。
Excel
中
的
日期
格式
是特定的数字
格式
,可以使用
Java
代码将
日期
和时间转换为
Excel
日期
格式
,然后将其导出到
Excel
表格
中
。例如,
日期
为2021年6月23日,时间为12:00:00的时间戳表示为 44370.5,其
中
44370表示
日期
部分,0.5表示时间部分。 在将
日期
和时间导出到
Excel
表格之前,可以使用
Java
中
的
日期
格式
化类将其
格式
化为
Excel
可以识别的
日期
格式
。
ditNumber为从
Excel
中
获取的int类型的
日期
数据;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
BigDecimal bd = new BigDecimal(ditNumber);
int days = bd.intValue();
int mills = (int) Mat...
最近接手了一个已上线的项目,看到库
中
某表的一个
日期
字段,偶尔出现了5位纯数字,类似这样:47234,并不是我们常见的”yyyy-MM-dd“这样的
格式
。
我以为是脏数据,经过翻阅资料,发现其实不然,原来是
Excel
导入数据时没有对
日期
做
处理
造成的。而这个数字,是距离1900年到现在的天数。
既然知道其
中
的缘由,那必须要把库
中
的这些数据
处理
一下。上代码:
第一种方式:
// 创建1900年的日历对象
Calendar c = new GregorianCalendar(1900,0,-1);
Date d
import
java
.math.BigDecimal;
import
java
.sql.Timestamp;
import
java
.text.ParseException;
import
java
.text.SimpleDateFormat;
import
java
.util.Calendar;
import
java
.util.Date;
import
java
.util.regex.Matcher;
import
java
.util.regex.Pattern;
public static void main(String [] args){
System.out.println(
Excel
DoubleToDate("44023"));
Syste
在
Java
中
,可以使用SimpleDateFormat类将
日期
格式
化为字符串。假设你已经将
Excel
文件
中
的
日期
数据读取到了Date类型的变量
中
,可以按照以下步骤将
日期
转换为字符串:
1. 创建SimpleDateFormat对象,指定
日期
格式
。例如,如果
Excel
中
的
日期
格式
为"yyyy-MM-dd",则可以使用以下代码创建SimpleDateFormat对象:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
2. 调用SimpleDateFormat对象的format方法,将Date类型的
日期
格式
化为字符串。例如,假设date变量
中
存储了
Excel
中
的
日期
数据,可以使用以下代码将
日期
转换为字符串:
String dateString = dateFormat.format(date);
3. 使用字符串进行后续
处理
。此时,dateString变量
中
存储了
日期
的字符串表示,可以将其传递给后台
处理
程序进行进一步
处理
。
完整的代码示例:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = // 从
Excel
中
读取的
日期
数据
String dateString = dateFormat.format(date);
// 将dateString传递给后台
处理
程序进行进一步
处理