(1)安装
npm install moment _–save _
yarn add moment # Yarn
(2)引入
// require 方式
var moment = require(‘moment’);
// import 方式
import moment from ‘moment’;
moment().format('MMMM Do YYYY, h:mm:ss a'); // 七月 20日 2022, 4:25:13 下午
moment().format('dddd'); // 星期三
moment().format("MMM Do YY"); // 7月 20日 22
moment().format('YYYY [escaped] YYYY'); // 2022 escaped 2022
moment().format('YYYY-MM-DD HH:mm:ss') //"2022-07-20 16:46:40"
moment().format('YYYY年MM月DD日 HH时mm分ss秒') //"2022年07月20日 16时47分17秒"
moment().format('YYYY年MM月DD日 HH:mm:ss') // "2022年07月20日 16:46:18"
moment().format('YYYY.MM.DD HH:mm:ss') //"2022.07.20 16:47:58"
moment("20111031", "YYYYMMDD").fromNow(); // 11 年前
moment("20120620", "YYYYMMDD").fromNow(); // 10 年前
moment().startOf('day').fromNow(); // 16 小时前
moment().endOf('day').fromNow(); // 8 小时内
moment().startOf('hour').fromNow(); // 25 分钟前
moment().second() //获得 秒
moment().second(Number) //设置 秒。0 到 59
moment().minute() //获得 分
moment().minute(Number) //设置 分。0 到 59
// 类似的用法
moment().hour() // 小时
moment().date() // 一个月里的第几天
moment().day() // 星期几
moment().dayOfYear() // 一年里的第几天
moment().week() // 一年里的第几周
moment().month() // 第几个月
moment().quarter() // 一年里的第几个季度
moment().year() // 年
moment().daysInMonth() // 当前月有多少天
moment().add(7, 'days') // 之后的第7天。第2个参数还可以是 'months', 'years' 等。注意是复数。
moment().add(7, 'd')// 与上面一行代码的运行结果一样。
moment().subtract(1, 'months') // 上个月
moment().startOf('week') // 这周的第一天
moment().startOf('hour') // 等效与 moment().minutes(0).seconds(0).milliseconds(0)。
// 还支持 'year','month' 等
moment().endOf('week')
// 早于
moment('2010-10-20').isBefore('2010-10-21') // true
moment('2010-10-20').isBefore('2010-12-31', 'year') // false
moment('2010-10-20').isBefore('2011-01-01', 'year') // true
// 是否相等
moment('2010-10-20').isSame('2010-10-20') // true
moment('2010-10-20').isSame('2009-12-31', 'year') // false
moment('2010-10-20').isSame('2010-01-01', 'year') // true
// 晚于
moment('2010-10-20').isAfter('2010-10-19') // true
moment('2010-10-20').isAfter('2010-01-01', 'year') // false
moment('2010-10-20').isAfter('2009-12-31', 'year') // true
// 是否在时间范围内
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // true
moment().isLeapYear() // 是否是闰年
-- 返回当前日期 2022-07-20
select curdate() ;
-- 返回当前时间 16:46:41
select curtime() ;
-- 返回当前日期和时间 2022-07-20 16:47:02
select now() ;
-- 返回当前日期和时间 20220720164739
select now() + 0 ;
-- 返回日期 date 年份 2022
select year(now())
-- 返回日期 date 月份 7
select month(now()) ;
-- 返回日期 date 月份的名字 July
select monthname(now()) ;
-- 返回日期 date 为一年中的第几周 29
select week(now()) ;
-- 返回 time 的小时值 16
select hour(now()) ;
-- 返回 time 的小时值
select minute(now()) ;
-- 在当前时间上增加 3 天 2022-07-23 16:55:21
select date_add(now(), interval 3 day) ;
-- 在当前时间上增加 3 天 加上时间格式化 2022-07-23
SELECT DATE_FORMAT( DATE_ADD(NOW(),INTERVAL 3 DAY) ,'%Y-%m-%d')
-- 9分钟前 加上格式化 2022-07-20 16:52:00
SELECT DATE_FORMAT( DATE_ADD(NOW(),INTERVAL-9 MINUTE) ,'%Y-%m-%d %H:%i:00')
-- 在当前时间上减少 3 天
select date_add(now(), interval -3 day) ;
-- 在当前时间上增加 1 小时
select date_add(now(), interval 1 hour);
-- 在当前时间上增加 1 分钟
select date_add(now(), interval 1 minute);
-- 在当前时间上增加 1 秒
select date_add(now(), interval 1 second);
-- 在当前时间上增加 1 微秒
select date_add(now(), interval 1 microsecond);
-- 在当前时间上增加 1 星期
select date_add(now(), interval 1 week);
-- 在当前时间上增加 1 个月
select date_add(now(), interval 1 month);
-- 在当前时间上增加 1 个季度,相当于3个月
select date_add(now(), interval 1 quarter);
-- 在当前时间上增加 1 年
select date_add(now(), interval 1 year);
//计算两个时间的天数差
select datediff(now()," 2022-07-10")
//结果是:-10
select date_format(now(),"%Y/%m/%d")
// 2018/05/10
select date_format(now(),'%Y-%m-%d %H')
// 2022-07-20 17
public class TimeUtil {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
/**
* 获取当前日期指定天数之后的日期.
* @param num 相隔天数
* @return Date 日期
* @since 1.0
*/
public static Date nextDay(int num) {
Calendar curr = Calendar.getInstance();
curr.set(Calendar.DAY_OF_MONTH, curr.get(Calendar.DAY_OF_MONTH) + num);
return curr.getTime();
}
/**
* 获取当前时间的10位时间戳
* @return
*/
public static String getTimestamp(){
return String.valueOf(System.currentTimeMillis() / 1000);
}
/**
* 获取当前时间 按指定格式来 yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getTime(){
Date now = new Date();
String time = sdf.format(now);
return time;
}
/**
* date转String 按指定格式来 yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getAttrTime(Date date){
String time = sdf.format(date);
return time;
}
/**
* 时间戳转String 按指定格式来 yyyy-MM-dd HH:mm:ss 13位时间戳
* @return
*/
public static String getLongTime(long stamp){
String time = sdf.format(new Date(stamp));
return time;
}
/**
* 时间戳转String 按指定格式来 yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getAttrLongTime(long stamp){
long longTime = stamp * 1000;
String time = sdf.format(new Date(longTime));
return time;
}
/**
* 校验时间是否是小于现在时间 处于合理范围内
* @param createTime 时间
* @param dayNum 天数
* @return
*/
public static boolean checkDateTime(Date createTime,long dayNum){
Date date1 = new Date();
if(null==createTime){
createTime = date1;
}
long day=(date1.getTime()-createTime.getTime())/(24*60*60*1000);
if(day <= dayNum){
return true;
}
return false;
}
/**
* 校验时间 并获取分钟差异的时间
* @param dateTime 时间
* @param minuteTime 差异分钟数 -5 5分钟之前的时间
* @return
*/
public static String checkVipOrderTimeStamp(String dateTime,Integer minuteTime){
if(NullUtils.isNullString(dateTime)){
return getMinuteTimeStamp(minuteTime);
}else{
try {
sdf.parse(dateTime);//检测
} catch (ParseException e) {
e.printStackTrace();
return getMinuteTimeStamp(minuteTime);
}
}
return dateTime;
}
/**
* 获取分钟差异的时间
* @param minuteTime 差异分钟数 -5 5分钟之前的时间
* @return
*/
public static String getMinuteTimeStamp(Integer minuteTime){
//获取当前时间的前5分钟时间
Calendar beforeTime = Calendar.getInstance();
beforeTime.add(Calendar.MINUTE, minuteTime);
Date date = beforeTime.getTime();
String time = sdf.format(date);
// System.out.println(time);
return time;
}
/**
* 查询唯代购品牌是否满足时间条件 必须大于多少天才能入库
* @param dateEnd 标准格式 yyyy-MM-dd HH:mm:ss 品牌结束时间
* @param day 时间 必须大于多少时间
* @return
* @throws ParseException
*/
public static boolean getVdgBrandSellTime(String dateEnd,long day) {
if(NullUtils.isNullString(dateEnd)){
return false;
}
try{
Date d1 = sdf.parse(dateEnd);//转Date
// Date d2 = sdf.parse(dateStart);//转Date
Date d2 = new Date();//转Date
long diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别
long days = diff / (1000 * 60 * 60 * 24);
// long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
// System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
if(days >= day){
return true;
}
}catch (Exception e){
e.printStackTrace();
}
return false;
}
/**
* 校验时间天数
* @param d1 标准格式 yyyy-MM-dd HH:mm:ss 时间
* @param day 时间 必须大于多少时间
* @return
*/
public static boolean ckeckDayTime(Date d1,long day) {
try{
Date d2 = new Date();//转Date
long diff = d2.getTime() - d1.getTime();//这样得到的差值是毫秒级别
long days = diff / (1000 * 60 * 60 * 24);
// long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
// long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
// System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
if(days >= day){
return true;
}
}catch (Exception e){
e.printStackTrace();
}
return false;
}
/**
* long时间戳装换为Date
* @param stamp
* @return
*/
public static Date getDateByLongTime(long stamp){
long longTime = stamp * 1000;
return new Date(longTime);
}
/**
* 获取当前时间之前或之后几小时 hour
* @param hour
* @return
*/
public static String getTimeByHour(int hour) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hour);
return sdf.format(calendar.getTime());
}
/**
* 求出两个时间的时间差
* @param stardateStr
* @param enddateStr
* @return
*/
public static boolean getDateStr(String stardateStr,String enddateStr){
SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式
Date date1 = new Date();
Date date2 = date1;
if(null!=stardateStr){
try {
date1 = dff.parse(stardateStr);
} catch (ParseException e) {
// date1 = new Date();
}
}
if(null!=enddateStr){
try {
date2 = dff.parse(enddateStr);
} catch (ParseException e) {
// date2 = new Date();
}
}else{
// Calendar c = Calendar.getInstance();
// c.setTime(date1);
// c.add(Calendar.DAY_OF_MONTH, 1);
// date2 = c.getTime();
}
long day=(date2.getTime()-date1.getTime())/(24*60*60*1000);
// System.out.println(day);
if(day<=2 && day>0){
return true;
}
return false;
}
/**
* 2019-08-29T08:41:25.367Z 装换为 Date格式 yyyy-MM-dd HH:mm:ss
* @param dateStr
* @return
* @throws ParseException
*/
public static String getDateStr(String dateStr){
SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式
Date date1 = null;
try {
date1 = dff.parse(dateStr);
} catch (ParseException e) {
date1 = new Date();
}
String str1 = dff.format(date1);
return str1;
}
/**
* 获取当前时间 Date格式 yyyy-MM-dd 自定义
* @param dayNum 时间 1明天 -1昨天
* @return
* @throws ParseException
*/
public static String getCustomDateStr(Integer dayNum){
SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式
Date today = new Date();
Date date1 = null;
try {
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add(Calendar.DAY_OF_MONTH, dayNum);
date1 = c.getTime();
} catch (Exception e) {
date1 = today;
}
String str1 = dff.format(date1);
return str1;
}
public static String getDateStrDxie(String dateStr) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = formatter.parse(dateStr);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate=sdf.format(date);
return sDate;
}
/**
* 获取Date时间
* @param dateStr
* @return
*/
public static Date getDate(String dateStr) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse(dateStr);
return parse;
} catch (ParseException e) {
}
return new Date();
}
/**
* 检查 中文时间格式是否正确
* @param dateStr
* @return
* @throws ParseException
*/
public static String ckeckStringDate(String dateStr) throws ParseException {
Date parse = sdf.parse(dateStr);//转Date
String sDate=sdf.format(parse);//转String 标准格式 yyyy-MM-dd HH:mm:ss
return sDate;
}
}