对日期的各种操作

QMT量化交易桥接方案深度对比:从MiniQMT淘汰说起 量化交易系统中的API桥接,本质是解决本地终端与底层交易引擎之间的通信瓶颈。其核心原理在于绕过GUI封装、直连确定性执行层,从而获得低延迟、高可靠、可监控的指令通路。技术价值体现在策略实盘一致性提升、毫秒级响应保障及运维可控性增强。典型应用场景包括打板策略、T+0套利、高频网格等对时效与稳定性双敏感的自动化交易。本文聚焦国金证券QMT专业版生态,系统剖析DLL注入、HTTP反向代理、IPC共享内存与官方HTTP API四大桥接路径的性能边界、合规风险与工程落地成本,尤其深入解析qmt终端 client is 阅读详情

前排提醒:若使用

SimpleDateFormat

解析时间错12H,文末有详细解决办法;

由于需要统计某一时间段内的数据,必须以起止时间作为条件进行查询,并且需要跟其他周期的数据进行对比,所以需要对时间进行各种操作,记录方便后面查看!

需求,根据传参以年、月,日为时间段获取统计数据,并且获取上一个统计周期的数据进行比较

例如2023-3-14 15:25:25

如果是按年则是今年的,则上一个统计周期为去年

如果按月或者按天,则上一个统计周期直接在月份上减1或者在日期上减1会出现边界问题,所以需要进行如下处理。

//根据type获取起止时间
            String type=request.getParameter("type");
            String startTime="";
            String endTime="";
            String oldStartTime="";
            String oldEndTime="";
     Calendar date = Calendar.getInstance();
            LocalDate localDate=LocalDate.now();
            LocalDate localDate1 = localDate.minusMonths(1);
            LocalDate localDate2 = localDate.minusDays(1);
String year = String.valueOf(date.get(Calendar.YEAR));
//          year="2022";


            String month = String.valueOf(date.get(Calendar.MONTH));
            Integer integer = Integer.valueOf(month)+1;
            String day = String.valueOf(date.get(Calendar.DAY_OF_MONTH));
            if(type.equals("year")){
                //第一天00:00:00
                startTime=year+"-01-01 00:00:00";
                oldStartTime=(Integer.valueOf(year)-1)+"-01-01 00:00:00";
                //最后一天 59:59:59
                endTime=year+"-12-31 23:59:59";
                oldStartTime=(Integer.valueOf(year)-1)+"-12-31 23:59:59";


            }else if(type.equals("month")){
                //第一天00:00:00
                Calendar cc=Calendar.getInstance();
                Date parse = df.parse(localDate1.toString());
                cc.setTime(parse);



                int old = cc.getActualMaximum(Calendar.DAY_OF_MONTH);

                startTime=year+"-"+integer+"-01 00:00:00";
                oldStartTime=cc.get(Calendar.YEAR)+"-"+( cc.get(Calendar.MONTH)+1)+"-01 00:00:00";
                int maximum = date.getActualMaximum(Calendar.DAY_OF_MONTH);

                endTime=year+"-"+integer+"-"+maximum+" 23:59:59";
                oldEndTime=cc.get(Calendar.YEAR)+"-"+( cc.get(Calendar.MONTH)+1)+"-"+old+" 23:59:59";


            }else if(type.equals("day")){
                Calendar cc=Calendar.getInstance();
                Date parse = df.parse(localDate2.toString());
                cc.setTime(parse);
                oldStartTime=cc.get(Calendar.YEAR)+"-"+( cc.get(Calendar.MONTH)+1)+"-"+cc.get(Calendar.DATE)+" 00:00:00";
                oldEndTime=cc.get(Calendar.YEAR)+"-"+( cc.get(Calendar.MONTH)+1)+"-"+cc.get(Calendar.DATE)+" 23:59:59";
                startTime=year+"-"+integer+"-"+day+" 00:00:00";
                endTime=year+"-"+integer+"-"+day+" 23:59:59";

            }

 顺便整理关于日期的常用操作

Date DateFormate Calendar LocalDate LocalDateTime

Date 可以获取当前时间戳

DateFormate 对时间进行格式化操作

LocalDate LocalDateTime 可以方便的对时间进行加/减一天、一月、小时等操作

Calendar 根据指定的字符串生成指定的日期,并可方便的获取年份,月份,周几,几号,本月最大天数,等信息

补充内容,给一个时间,获取某个某个时间段的起止时间,比如,拉取5小时内的数据,由于调用的是第三方接口,且需要在定时任务中调用,需要传起止时间,且时间不定,为方便随时更改规则,直接统一一个方法:

private List<String> getBetWeenTimes(Integer count,String unit) {
        List<String> list=new ArrayList<>();
        Date current=new Date();
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        df.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(current);

        switch (unit){
            case "year":
                calendar.add(Calendar.YEAR, -count);
                break;
            case "month":
                calendar.add(Calendar.MONTH, -count);
                break;
            case "day":
                calendar.add(Calendar.DAY_OF_MONTH, -count);
                break;
            case "hour":
                calendar.add(Calendar.HOUR_OF_DAY, -count);
                break;
            case "min":
                calendar.add(Calendar.MINUTE, -count);
                break;
            default:
                calendar.add(Calendar.SECOND, -count);
                break;
        }
        Date from = calendar.getTime();
        list.add(df.format(from));
        list.add(df.format(current));

        return  list;

    }

TIPS:

SimpleDateFormat

H:一天中的小时数:0-23
h: am/pm 小时数: 1-12


ch32v103xx 烧写 烧写方式 串口uart, usb,swd(wch link)但不建议按此使用,参官方说明。 阅读详情

相关推荐

用人话讲明白线性回归LinearRegression

目录 什么是回归 一元线性回归 损失函数 最小二乘估计 小结 1. 什么是回归 当我们学习一门新课程、接触一个新专业时,总会对该领域的专有名词感到困惑,甚至看完解释仍难以理解其含义。在我们一起学习machine learning的过程中,我会尽量对相关名词用“人话”做一遍解释,以减少学习的“痛苦感”。 譬如今天要学的线性“回归”,这个回归(regression)和我们平时说的“回归祖国”的回...

化简可得 1万+

转换String三种方式比较:toString()、String.valueOf()、(String)

参考 https://www.cnblogs.com/JsonShare/p/6564863.html https://blog.csdn.net/u013378092/article/details/72899596 https://blog.csdn.net/shenxiaomo1688/article/details/81063823 简单介绍: 1、toString 需要保证调...

try to do 1496

Dify沙盒容器部署实战:解决config.yaml缺失与系统调用权限问题

本文详细解析了Dify沙盒容器部署中的两大常见问题:config.yaml缺失与系统调用权限限制。通过实战步骤指导如何正确配置卷挂载解决`no such file or directory`错误,并深入讲解如何调整`allowed_syscalls`白名单应对`error: operation not permitted`权限问题,帮助开发者高效完成Dify容器化部署。

gg901的博客 922

Date String 类型的互相转换 和 valueOf 、parseInt() 方法的比较

package method.usually; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.json.JSONObject; public class

LL_1573的博客 1252

C# .NET6 TesseractOCR 图片文字识别

在你的项目中的tessdata-main文件夹找到这几个文件,并右键->属性设置为【如果较新则复制】有几个需要用到的模型,需要生成的时候复制到输出目录中,在项目中设置即可。TesseractOCR兼容 x86 与 x64。附 :ImageUtils.RegionCropping()源码。Visual Studio 2022 社区版。下载完成后解压在你的项目中,如图所示。从官方项目中获取模型数据, 网址为。

qq_44121554的博客 3854

ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案

本文主要介绍了ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 19万+

时间操作

获取Long格式时间: 第一种: String.valueOf(System.currentTimeMillis()); 第二种: String.valueOf((new Date()).getTime()) 两种都是13位结果 待续。。。

wangfei0904306的博客 654

网络安全 | 企业网络安全的十大挑战及解决方案

网络安全 | 企业网络安全的十大挑战及解决方案,随着信息技术的飞速发展,企业数字化转型进程不断加速,网络安全问题日益成为企业运营与发展面临的关键挑战。本文深入剖析企业网络安全的十大挑战,包括网络攻击日益复杂、数据泄露风险、内部威胁、物联网安全、云安全、合规性要求、移动办公安全、供应链安全、人才短缺以及安全预算有限等,并针对每个挑战详细阐述相应的解决方案,旨在为企业构建全面、有效的网络安全体系提供指导与参考,助力企业在复杂多变的网络环境中保障自身信息资产安全,实现可持续发展。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

String.valueOf() 方法的使用

1. 由 基本数据型态转换成 String  String 类别中已经提供了将基本数据型态转换成 String 的 static 方法  也就是 String.valueOf() 这个参数多载的方法  有下列几种  String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串  String.valueOf(char c) : 将 char 变量 c

svenke2011的专栏 4637

Matlab实现雷达波位编排

1 简介 %本程序用于雷达球坐标系到正弦空间坐标系的转换,以及相控阵雷达的波位编排。 2 完整代码 ​%070228添加波位数据保存clear allclose allclc%波束宽度,单位:度BeamWidth = 3.6;theta05 = round(sin(BeamWidth*pi/180)*1000)/1000;%雷达作用空域AZ = [-15 15]; %方位角范围(雷达球坐标系),单位:度EL = [0 30]; %俯仰角范围(雷

qq_59747472的博客 2479

WEB浏览器视频流播放方案

基于Media Source Extensions播放视频流 浏览器播放视频的几种方法 一、H5 video标签 在浏览器播放视频,可以使用HTML5原生的video标签。但其播放的格式使用一定限制的,目前video只支持三种格式WebM、Ogg、MP4。 WebM:WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器 Ogg :Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器 MP4: MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 上面三种

machh的专栏 2382

处理时间的一些有用的方法

<!--google_ad_client = "pub-1926348199765453";/* 728x90, 创建于 08-12-3 */google_ad_slot = "0385006797";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"sr

Sonic 的技术博客 1615

TGAT Python:图神经网络中的动态图算法

其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。

2301_79366435的博客 1830

JS日期操作大全

js操作时间(函数) var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); /

一米阳光 3377

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jquery关于日期的一些操作

jquery比较两个日期的大小 var starttime = $('#txtStorageTimeStart').val(); var endtime = $('#txtStorageTimeEnd').val(); var start = new Date(starttime.replace("-", "/").replace("-", "/")); var end = new Dat

c782699991的博客 666

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SQL-日期操作

本文主要记录关于SQL-日期操作的相关笔记。涉及函数date_add(),date_sub(),datediff(),date_format(),makedate(),last_date()等

Sky-JT的博客 3571

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

sql语句中日期相减的操作

sql语句中日期相减的操作 GETDATE() 和 NOW() 查出来的时间一样 select GETDATE(),NOW() FROM t_表名; curdate() 只显示年月日 select curdate(),NOW() FROM TB_表名; 如果做减法,只能得到相差的天数 不想有时分秒,可以考虑用 curdate() select (NOW()-日期时间字段),(curdate()-日期时间字段) FROM T_表名; 两日期间隔年 select datediff(year

sungencheng的博客 6万+

java日期加减操作

 /****       * 传入具体日期 ,返回具体日期增加一个月。       * @param date 日期(2019-01-21)       * @return 2019-02-21      * @throws ParseException       */       private  String subMonth(String date) throws ParseExcepti...

fall_hat的博客 3015

python日期操作_Python基础—日期与时间操作

Python标准库中提供了datatime模块来操作日期和时间环境及版本Windows 10 x64Python 2.7Pycharm 4.5.1datetime.date表示日期的类,常用的属性有year, month, dayyear的范围是[1, 9999],month的范围是[1, 12],day的最大值根据给定的year, month参数来决定(区分闰年)常用的属性# 利用构造函数创建日...

weixin_33969103的博客 994

对日期的一些特殊操作

1、Java获取某年某周的最后一天 public static Date getLastDayOfWeek(int year, int week) { Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, Calendar.J...

南巷清风 237

Java中日期的几种常见操作

Java中日期的几种常见操作 JDK 1.7 一、日期取值 java.util.Date类不便于实现国际化。 推荐使用java.util.Calendar类进行时间和日期方面的处理。 由于 Calendar 的构造器方法被 protected 修饰,所以我们会通过 API 中提供的getInstance() 方法来创建 Calendar 对象。 //有多个重载方法创建 Calendar 对象 Calendar now = Calendar.getInstance(); //默认 //指定时区和地区,也可以只

qq_43044552的博客 1588

日期操作类

日期操作类

2301_77118121的博客 1055

java 日期时间操作_java日期时间操作

packagecom.gds.web.util;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;publicclassDateOpUtil{/***@paramargs*@throwsParseExcep...

weixin_29504987的博客 152

python中的日期操作

Python日期的加减等操作 经常会用的,总结一下。 1. 日期输出格式化 所有日期、时间的api都在datetime模块内。 datetime => string now = datetime.datetime.now() now.strftime('%Y-%m-%d %H:%M:%S') #输出2012-03-05 16:26:23.870105 strftime是datetim...

ISxiancai的博客 378

日期操作工具类大全

package com.xiejiamin.utils; import java.text.SimpleDateFormat; import java.util.*; /** 日期操作工具类 / public class DateUtils { /* 日期转换- String -> Date @param dateString 字符串时间 @return Date类型信息 @throws Exception 抛出异常 */ public static Date parseString2Dat

weixin_45958353的博客 288

java日期操作

取得指定月份的第一天与取得指定月份的最后一天 /** * 取得指定月份的第一天 * * @param strdate String * @return String */ public String getMonthBegin(String strdate) { java.util.Date date = parseFormatDate(str...

aika7689的博客 190
上一篇: 小程序装修重构思维导图
下一篇: 根据提供的规格数据(Map<规格名称,List<规格值>>),实现生成规格商品
learnjava1989
博客等级 码龄9年 9粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值