❶ java已知日期格式yymmdd怎么实现加一天减一天
//对Date类型数据的天数进行加减运算,num可以是负值
public
static
Date
changeDate(Date
date,int
num)
throws
ParseException
{
Calendar
c=Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE,
num);
return
formatChange(c.getTime());
}
//将Date类型数据转为yyyyMMdd格式
public
static
Date
formatChange(Date
date)
throws
ParseException
{
return
new
SimpleDateFormat("yyyyMMdd").parse(new
SimpleDateFormat("yyyyMMdd").format(date));
} //执行入口
public
static
void
main(String[]
args)
throws
ParseException
{
System.out.println(changeDate(new
Date(),-15));
}
❷ java中yyyyMMddHHmmss时间格式怎么转化为yyyy-MM-dd HH:mm:ss
123Stringdate="20151101095440";Stringreg="(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})";date=date.replaceAll(reg,"$1-$2-$3$4:$5:$6")。
❸ java中想要将字符串类型的201827的日期格式初始化成为yyyyMMdd的日期格式有什么方法
importjava.text.*;
classtest
{
publicstaticvoidmain(String[]args)throwsException
{
SimpleDateFormatsdf1=newSimpleDateFormat("yyyyMd");
SimpleDateFormatsdf2=newSimpleDateFormat("yyyyMMdd");
System.out.println(sdf2.format(sdf1.parse("201827")));
}
}
❹ java如何对生日(yyyymmdd)进行合法性判断
修改你说的存在的bug
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestBirthday {
public static void main(String[] args){
String birthday="20130132";
System.out.println(isBirthday(birthday));
}
/*
* @param : birthday 传入一个日期格式的字符串
* 支持 yyyy-MM-dd ,yyyyMMdd MM-dd-yyyy ,yyyy年MM月dd日
* @isBirthday 判断输入的字符串是否是合法的生日 生日不能大于当前日期
* */
public static boolean isBirthday(String birthday){
//定义需要过滤的条件,可以将你期望的日期格式添加到数组中
String[] formats={
"yyyy-MM-dd",
"yyyyMMdd",
"MM-dd-yyyy",
"yyyy年MM月dd日"
};
/*
* 设置格式过滤器
*/
//记录传入的日期字符串,转换成日期类型
Date birth=null;
//判断格式是否正确,默认值为false
boolean isRight=false;
for(String f:formats){
try {
birth =new SimpleDateFormat(f).parse(birthday);
//校验日期转换后是和传入的值不相同,说明日期传入有问题
//修正楼上提到的bug
if(!new SimpleDateFormat(f).format(birth).equals(birthday)){
return false;
}
isRight=true;
break;
} catch (ParseException e) {}
}
if(isRight){
//获取当前日期的毫秒数
long now =new Date().getTime();
//获取生日的毫秒数
long birthTime = birth.getTime();
//如果当前时间小于生日,生日不合法。反之合法
return birthTime<=now;
}else{
//输入的参数类型不是日期类型,或者类型和过滤中设置的类型不匹配
return false;
}
}
}
❺ Java如何获取Date类型且格式为yyyy-mm-dd的日期数据
@return返回长时间格式 yyyy-MM-dd HH:mm:ss
*/ public static Date getSqlDate() {
Date sqlDate = new java.sql.Date(new Date().getTime());
return sqlDate; }
/**
* 获取现在时间
@return返回长时间格式 yyyy-MM-dd HH:mm:ss
*/ public static Date getNowDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
ParsePosition pos = new ParsePosition(8);
java.sql 类 Date
java.lang.Object
java.util.Date
java.sql.Date
所有已实现的接口:
Serializable,Cloneable,Comparable<Date>
public class Dateextends Date
概述:一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。
为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。
以上内容参考:网络-date
❻ java日期类型用yyyyMMdd样式输出,要求输出的格式是日期类型
1.
你既然要求结果还是date类型,d2怎么是string,改成date
d2
=
format.parse(d);
2.
date类型的数据是不存在格式问题的,只有你format或者tostring转化成字符串之后输出才有格式,打印出fri
aug
02
00:00:00
cst
2013,只是date的默认格式
❼ java中的Date怎么转换成YYYYMMDD形式的
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
创建SimpleDateFormat对象的时候使用带Locale的构造参数
因为你的星期和月份是用E文写的 所以parse回来的时候自然得用E文的Locale 用默认中文的Locale就会认不出来
btw 你用US的Locale的话 时区也会跑那里去 所以你应该给时区指定GMT+08:00 而不是光一个GMT
参考这段小代码
String s ="Thu, 02 Mar 2006 05:14:25 GMT+08:00";
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
SimpleDateFormat outSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.CHINA);
try {
Date dateS = inSdf.parse(s);
System.out.println(outSdf.format(dateS));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
❽ java 正则表达式验证日期格式 yyyy-MM-dd,如何写
我前不久刚好整了这段代码,你仔细看一下:
闰年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
平年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
上面代码验证的格式是yyyyMMdd,看懂了这个,你那个也就清楚了
❾ Java怎么命名日期格式常量,如“yyyy-MM-dd”
/** 日期格式,年份-月份-日*/ public static final String DF_STANDARD = "yyyy-MM-dd";
/**日期格式,年份/月份/日*/public static final String DF_STANDARD = "yyyy/MM/dd";
/** 日期格式,年份-月份-日*/ public static final String DF_YYYYMMDD = "yyyyMMdd";