//CalendarTestjava
//Calendar对象能很好解决你的问题
import javautilCalendar;
public class CalendarTest {
public static void main(String[] args) {
Calendar c = CalendargetInstance();
int y=cget(CalendarYEAR);//年
int M = cget(CalendarMONTH)+1;//月,注意这里要加1,计算机第一个月从0开始
int d = cget(CalendarDATE);//日
Systemoutprintln("年:"+y);
Systemoutprintln("月:"+M);
Systemoutprintln("日:"+d);
String dateStr = "";
dateStr+=y+"-"+(M<10"0":"")+M+"-"+(d<10"0":"")+d;
Systemoutprintln(dateStr);
}
}
//得到long类型当前时间
long l = SystemcurrentTimeMillis();
//new日期对象
Date date = new Date(l);
//转换提日期输出格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Systemoutprintln(dateFormatformat(date));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = new Date();
fxsetDate(dfparse(dfformat(dt)));
不过这样做有一个问题就是,即使前面将Date型格式化,存到实体类型里的Date仍然不带有格式,直接打印实体的Date型会默认直接调用Date类的toString方法,而Date类的toString方法默认格式是dow mon dd hh:mm:ss zzz yyyy,所以打出的格式会与你想存入的不符合,其实就相当于直接将dt存入了实体中。如果想取出带格式的除非再进行转化,否则得话还是建议把属性改成String型的。
其实系统默认的都是毫秒数的时间戳, 所以你想要的2017-01-16 17:00:00 不是提取的, 而是格式化的
new SimpleDateFormat("yyyy-MM-dd HH:00:00")format(SystemcurrentTimeMillis());
package util;
import javamathBigDecimal;
import javatextParseException;
import javatextSimpleDateFormat;
import javautilCalendar;
import javautilDate;
/
获取系统时间
/
public class DateUtil {
/ 日志对象 /
// private static Logger logger = LoggergetLogger(SystemUtilclass);
/ 获取年份 /
public static final int YEAR = 1;
/ 获取年月 /
public static final int YEARMONTH = 2;
/ 获取年月日 /
public static final int YEARMONTHDAY = 3;
/ 获取年月日,小时 /
public static final int YMD_HOUR = 4;
/ 获取年月日,小时,分钟 /
public static final int YMD_HOURMINUTE = 5;
/ 获取年月日,时分秒 /
public static final int FULL = 6;
/ 获取年月日时分秒 格式:yyyyMMddHHmmss /
public static final int UTILTIME = 7;
/
根据指定时间格式类型得到当前时间
@param type
时间类型
@return String 字符串时间
/
public static synchronized String getCurrentTime(int type) {
String format = getFormat(type);
SimpleDateFormat timeformat = new SimpleDateFormat(format);
Date date = new Date();
return timeformatformat(date);
}
/
返回当前系统时间的年月日
@return
/
public static synchronized String getCurrentTime() {
SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
return timeformatformat(date);
}
/
根据参数格式,格式化当前日期
@param format
@return
/
public static synchronized String getDateString(String format) {
SimpleDateFormat timeformat = new SimpleDateFormat(format);
Date date = new Date();
return timeformatformat(date);
}
/
根据指定时间格式类型,格式化时间格式
@param type
时间格式类型
@return
/
private static String getFormat(int type) {
String format = "";
if (type == 1) {
format = "yyyy";
} else if (type == 2) {
format = "yyyy-MM";
} else if (type == 3) {
format = "yyyy-MM-dd";
} else if (type == 4) {
format = "yyyy-MM-dd HH";
} else if (type == 5) {
format = "yyyy-MM-dd HH:mm";
} else if (type == 6) {
format = "yyyy-MM-dd HH:mm:ss";
} else if (type == 7) {
format = "yyyyMMddHHmmss";
} else {
throw new RuntimeException("日期格式参数错误");
}
return format;
}
public static int getYear(String dateString) {
SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = ddparse(dateString);
Calendar cal = CalendargetInstance();
calsetTime(date);
return calget(CalendarYEAR);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static int getMonth(String dateString) {
SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = ddparse(dateString);
Calendar cal = CalendargetInstance();
calsetTime(date);
return calget(CalendarMONTH)+1;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static int getDay(String dateString) {
SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = ddparse(dateString);
Calendar cal = CalendargetInstance();
calsetTime(date);
return calget(CalendarDAY_OF_MONTH);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Date StringToDate(String dateStr, String formatStr) {
SimpleDateFormat dd = new SimpleDateFormat(formatStr);
Date date = null;
try {
date = ddparse(dateStr);
} catch (ParseException e) {
eprintStackTrace();
}
return date;
}
/
当前日期和参数日期距离的小时数 日期格式:yyyy-MM-dd HH:mm:ss
@param date
@return
/
public static double getHours(String date) {
SimpleDateFormat timeformat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
try {
Date d = new Date();
Date d1 = timeformatparse(date);
long temp = dgetTime() - d1getTime();
double f = temp / 3600000d;
BigDecimal b = new BigDecimal(f);
double f1 = bsetScale(2, BigDecimalROUND_HALF_UP)doubleValue();
return f1;
} catch (Exception e) {
eprintStackTrace();
throw new RuntimeException(e);
}
}
public static void main(String a[]) {
try {
int aa = getYear("2012-01-08");
Systemoutprintln(aa);
} catch (Exception e) {
eprintStackTrace();
}
}
}
public static void main(String[] args) {
Calendar calendar = CalendargetInstance(LocalegetDefault());
Systemoutprintln(calendarget(CalendarYEAR));
Systemoutprintln(calendarget(CalendarMONTH)+1);
Systemoutprintln(calendarget(CalendarDATE));
}
3行代码分别用于获取当前时间的年、月、日,获取月份的时候需要+1,因为月份取的索引值,从0-11
以上就是关于JAVA 如何单独取得"年","月","日"...全部的内容,包括:JAVA 如何单独取得"年","月","日"...、怎么在当前Java程序中获取当前年月日、在java中如何获得当前年份月份时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)