首页 > 其他分享 >日期转换-面板2

日期转换-面板2

时间:2022-11-17 21:25:18浏览次数:38  
标签:return Long date 日期 new Date 转换 Calendar 面板


import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

public class DatapanelUtil
{
/**
* 当前时间戳 所在的年周
* @param data
* @return 20191 201923
* @see [类、类#方法、类#成员]
*/
public static Long getCurrentWeek(Long data)
{
Calendar c = Calendar.getInstance();
c.setTime(new Date(data));
c.add(3, 0 * -1);
Date d = c.getTime();
c = Calendar.getInstance();
c.setTime(d);
return Long.parseLong(c.get(Calendar.YEAR) + "" + c.get(Calendar.WEEK_OF_YEAR));
}

/**
* 初始化统计数据
* @param indoorSubRunReq
* @see [类、类#方法、类#成员]
*/
public static Map<String, Integer> getBaseTimeData(Long finishTime)
throws Exception
{
Map<String, Integer> paramMap = new HashMap<String, Integer>();
String finishTempTime = stampToDate(finishTime);
String[] timeArray = finishTempTime.substring(0, 10).split("-");
paramMap.put("year", Integer.parseInt(timeArray[0]));
paramMap.put("month", Integer.parseInt(timeArray[1]));
paramMap.put("day", Integer.parseInt(timeArray[2]));
return paramMap;
}

/**
* 时间戳转换为时间
* @param s
* @return
* @see [类、类#方法、类#成员]
*/
private static String stampToDate(Long s)
{
String res;
if (String.valueOf(s).length() == 10)
{
s *= 10;
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(s);
res = simpleDateFormat.format(date);
return res;
}

/**
* string转换时间
* @param dateString
* @return
* @throws Exception
* @see [类、类#方法、类#成员]
*/
private static Date stringToDate(String dateString)
throws Exception
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateString);
return date;
}

/**
* 获取时间所在周
* <一句话功能简述>
* <功能详细描述>
* @param finishDate
* @return
* @see [类、类#方法、类#成员]
*/
public static String getWeekByTime(Date finishDate)
{
Calendar c = Calendar.getInstance();
c.setTime(finishDate);
SimpleDateFormat sdf = new SimpleDateFormat("ww");
if (c.get(Calendar.DAY_OF_WEEK) == 1)
{
c.add(Calendar.WEEK_OF_YEAR, -2);
}
else
{
c.add(Calendar.WEEK_OF_YEAR, -1);
}
return sdf.format(c.getTime());
}

/**
*
* 当前时间,周第一天和最后一天
* 对应的日期
* @param falg
* true:第一天 ;false:最后一天
* @return date
* @throws Exception
* @see [类、类#方法、类#成员]
*/
public static Long getDayNum(boolean falg, Long dateTime)
throws Exception
{
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
if (falg)
{
c.setTime(new Date(dateTime));
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 获取本周一的日期
}
else
{
c.setTime(new Date(dateTime + 7 * 24 * 60 * 60 * 1000));
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// 获取本周日的日期
}
String finishTempTime = stampToDate(c.getTime().getTime());
String[] timeArray = finishTempTime.substring(0, 10).split("-");
// return c.getTime().getTime();
return Long.parseLong(timeArray[2]);
}

/**
*
* 根据当前时间计算每周的天数 <功能详细描述>
*
* @param date
* @param num
* 本周为0 上周为1 依次类推
* @return
* @see [类、类#方法、类#成员]
*/
public static String getWeekDay(Date date, Integer num)
{
num = num == null ? 0 : num;
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
c.add(Calendar.DAY_OF_MONTH, num);
int mt = (c.get(Calendar.MONTH) + 1);
int dt = c.get(Calendar.DAY_OF_MONTH);
return c.get(Calendar.YEAR) + "" + (mt <= 9 ? ("0" + mt) : (mt + "")) + "" + (dt <= 9 ? ("0" + dt) : (dt + ""));
}

/**
* 获取日期当前月初,月末YMD
* @param b true 月初 false 月末
* @param dateTime
* @return
* @see [类、类#方法、类#成员]
*/
public static Long getYMDMonth(Boolean b, Long dateTime)
{
// 获取当月第一天和最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Long ymd;
Calendar cale = Calendar.getInstance();
cale.setTime(new Date(dateTime));
if (b)
{
// 获取前月的第一天
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
ymd = Long.parseLong(format.format(cale.getTime()));
}
else
{
// 获取前月的最后一天
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
ymd = Long.parseLong(format.format(cale.getTime()));
}
return ymd;
}

/**
* 是否为7天外数据
*
* @param dateTime 13位时间戳
* @return
*/
public static boolean isNotTimeThenSeven(Long dateTime)
{
int temp = 7 * 24 * 60 * 60 * 1000;
if (dateTime + temp > System.currentTimeMillis())
{
return false;
}
return true;
}

/**
* @Title: getYmdBeforeToday
* @Description: 获取n天前的ymd时间
* @return: Long
*/
public static Long getYmdBeforeToday(int n)
{
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
Date date = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
// 把日期推前一天.
calendar.add(Calendar.DATE, - n);
date = calendar.getTime();
return Long.valueOf(formater.format(date));
}
}

标签:return,Long,date,日期,new,Date,转换,Calendar,面板
From: https://www.cnblogs.com/dhdnm/p/16900989.html

相关文章

  • C语言类型转换
    类型转换类型转换:在C语言中,当一个运算符的几个操作数类型不同时,编译器会在进行运算之前将他们共同转化为某种一样的数据类型,一般来说编译器会先将占用内存较小的数据转化为......
  • Go语言单词格式转换命令行工具
    学习:单词格式转换|Go语言编程之旅(eddycjy.com)代码参考:go-programming-tour-book/tour:《Go语言编程之旅:一起用Go做项目》第一章:命令行程序(Command)(github.com)......
  • C 强制类型转换获取不同数据的字节表示
    #include<stdio.h>//指向类型为unsignedchar类型的对象指针typedefunsignedchar*byte_pointer;//size_t32位4字节64位8字节voidshow_bytes(byte_pointers......
  • PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列|附
    全文下载链接:http://tecdat.cn/?p=22617本文提供了一个在统计模型中使用马可夫转换模型模型的例子,来复现Kim和Nelson(1999)中提出的一些结果。它应用了Hamilton(1989)的滤波器......
  • python字典类型与 json数据转换
    一、json是什么json是轻量级的数据交换格式,是各种编程语言互通的桥梁。是一个约定好的标准,如有人用java,有人用PHP去开发一个系统,但是这两种语言不能直接互通,那就需要先转......
  • 转换流InputStreamReader OutputStreamWriter
    【1】转换流:作用:将字节流和字符流进行转换【2】转换流属于字节流还是字符流?输入字符流InputStreamReader:字节输入流----》字符的输入流OutputStreamWriter:字符的输出流......
  • 常用进制转换
    常用进制转换当然,Java中也已经将常用的进制转换方法封装好了,我们只需要调用对应方法即可。转换 方法 返回 十进制->二进制 Integer.toBinary(intnum)......
  • 32、计算任意日期相减后的天数
    题目: 请计算任意日期相减后的天数思路:  1、定义一个函数  2、将函数中两个参数分别进行设定相应参数含义。  3、传入参数值,返回结果。结果:importdatetime......
  • Oracle plsql 计算日期间工作日天数
    declare v_fdatedate:=to_date('2013-10-4','yyyy-mm-dd'); v_ldatedate:=to_date('2013-10-22','yyyy-mm-dd'); v_interval_anumber;......
  • Oracle date 插入显示公元前日期
    显示公元前日期很简单:--先创建一个表createtabletest(ddate);--插入一条记录--插入的日期要注意--1、“-”(负号)表示公元前--2、“s”格式控制符insertinto......