import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TimeUtil {
public static String getCurrentTime() {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置北京时区
return sdf.format(d);
}
}
注意:
h:12小时制小时数
H:24小时制小时数
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Created by Administrator on 2017/5/8.
*/
public class GetTime {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//Mon May 08 14:27:44 CST 2017
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));//2017-05-08 02:27:44
long millis = System.currentTimeMillis();
System.out.println(millis);//1494224864479
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(millis));//2017-05-08 02:27:44
//yyyy-MM-dd E hh:mm:ss.sss
//年-月-日 星期 时:分:秒.毫秒
System.out.println(new SimpleDateFormat("yyyy-MM-dd E hh:mm:ss.sss").format(date));//2017-05-08 星期一 02:27:44.044
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss").format(date));//2017-05-08 14:27:44.044
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));//2017-05-08 14:27:44
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(date));//2017-05-08 14:27
System.out.println(new SimpleDateFormat().format(date));//17-5-8 下午2:27 :默认
compareDataToNow("2017-05-03 12:45:00");
try {
Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2017-05-03 12:45:00");
compareToNowDate(date1);
} catch (ParseException e) {
e.printStackTrace();
}
getWeek();
getTime1();
getTime2();
}
static void getTime1() {
long time = System.currentTimeMillis();
//long now = android.os.SystemClock.uptimeMillis();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = new Date(time);
String t1 = format.format(d1);
System.out.println("SimpleDateFormat时间===" + t1);//2017-05-08 12:44:10
SimpleDateFormat f4 = new SimpleDateFormat("今天是" + "yyyy年MM月dd日 E kk点mm分");
System.out.println("f4======" + f4.format(new Date()));//今天是2017年05月08日 星期一 14点15分
SimpleDateFormat f3 = new SimpleDateFormat("今天是" + "hh小时mm分钟");
System.out.println("f3======" + f3.format(new Date()));//今天是02小时15分钟
SimpleDateFormat f2 = new SimpleDateFormat("今天是" + "kk点mm分钟");
System.out.println("f2======" + f2.format(new Date()));//今天是14点17分钟
}
static void getTime2() {
Calendar calendar = Calendar.getInstance();
String created = calendar.get(Calendar.YEAR) + "年"
+ (calendar.get(Calendar.MONTH) + 1) + "月"//从0计算
+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
+ calendar.get(Calendar.HOUR_OF_DAY) + "时"
+ calendar.get(Calendar.MINUTE) + "分" + calendar.get(Calendar.SECOND) + "s";
System.out.println("Calendar时间====" + created);//时间:2017年5月8日12时33分24s
}
static void getWeek() {
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
String today = null;
if (day == 2) {
today = "Monday";
} else if (day == 3) {
today = "Tuesday";
} else if (day == 4) {
today = "Wednesday";
} else if (day == 5) {
today = "Thursday";
} else if (day == 6) {
today = "Friday";
} else if (day == 7) {
today = "Saturday";
} else if (day == 1) {
today = "Sunday";
}
System.out.println("Today is:- " + today);//Today is:- Monday
}
//计算日期之间相隔几天:
static long compareDataToNow(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date passDate, nowDate;
long diff = -100l, days = -100l;
try {
passDate = sdf.parse(date);
String nowStr = sdf.format(new Date());
nowDate = sdf.parse(nowStr);
diff = passDate.getTime() - nowDate.getTime();//long型的毫秒数
days = diff / (1000 * 60 * 60 * 24);
System.out.println("相隔:" + days + "天" + " nowDate.getTime()=====" + nowDate.getTime());//-5天
} catch (ParseException e) {
e.printStackTrace();
}
return diff;
}
//计算日期之间相隔几天:
static long compareToNowDate(Date date) {
long diff = -100l, days = -100l;
Date nowDate = new Date();
diff = date.getTime() - nowDate.getTime();//long型的毫秒数
days = diff / (1000 * 60 * 60 * 24);
System.out.println("相隔:" + days + "天" + " nowDate.getTime()=====" + nowDate.getTime());//-5天
return diff;
}
}
calender的set与add区别:
@SuppressLint("SimpleDateFormat") SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar calendar0 = Calendar.getInstance();//当前时间
String date0 = format.format(calendar0.getTime());
System.out.println("date0===========" + date0);//date0===========2019-02-27 10:14:31
Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.DAY_OF_MONTH, 2);//add表示在默认的当前日期上加两天,(即:过两天的日期)
String date1 = format.format(calendar1.getTime());
System.out.println("date1===========" + date1);// date1===========2019-03-01 10:14:31
Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH, 2);//set表示直接将日期设置为本月2号(即:本月的二号)
String date2 = format.format(calendar2.getTime());
System.out.println("date2===========" + date2);//date2===========2019-02-02 10:14:31
获取日历日期
@SuppressLint("SimpleDateFormat") SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar calendar0 = Calendar.getInstance();//当前时间
String date0 = format.format(calendar0.getTime());
System.out.println("当前时间是:===========" + date0);//2019-02-27 10:36:11
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);//本月1号日期
System.out.println("set时间是:=======" + format.format(calendar.getTime()));//2019-02-01 10:36:11
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("dayOfWeek===============" + dayOfWeek);//6 :本月1号日期为本周第六天
int preDay = dayOfWeek - 1;
System.out.println("get时间是:=======" + preDay);//5
calendar.add(Calendar.DAY_OF_MONTH, -preDay);//倒退5天的日期,即为日历显示的第一天日期
System.out.println("add时间是:=======" + format.format(calendar.getTime()));//2019-01-27 10:36:11
ArrayList<Date> cells = new ArrayList<>();
int maxCellCount = 6 * 7;//显示的日期总个数
while (cells.size() < maxCellCount) {
cells.add(calendar.getTime());
//2019-01-27 10:36:11 到 2019-03-09 10:36:11 总计42个
System.out.println("遍历cells时间是:=======" + format.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
当天、当年判断
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static String getTime(String dateStr) {
System.out.println("需要判断的日期:==============" + dateStr);
String resultTime = dateStr;
Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH) + 1;
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("当前年year======================" + currentYear);
System.out.println("当前月month====================" + currentMonth);
System.out.println("当前日期day=====================" + currentDay);
Date date = str2Date(dateStr);
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("测试year======================" + year);
System.out.println("测试month====================" + month);
System.out.println("测试day=====================" + day);
if (currentYear == year) {//当年
if (currentMonth == month && currentDay == day) {//当天
resultTime = date2Str(date, "HH:mm");
String resultTime1 = date2Str(date, "H:mm");
String resultTime2 = date2Str(date, "HH:mm:ss");
System.out.println("resultTime==========" + resultTime);
System.out.println("resultTime1==========" + resultTime1);
System.out.println("resultTime2==========" + resultTime2);
} else {
resultTime = date2Str(date, "MM-dd");//不是当天
}
} else {
resultTime = date2Str(date, "yyyy-MM-dd");//不是当年
}
return resultTime;
}
public static String date2Str(Date date, String s) {
SimpleDateFormat dateFormat = new SimpleDateFormat(s);
return dateFormat.format(date);
}
public static Date str2Date(String dateStr) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}