cst

13.Go语言标准库之time包

烈酒焚心 提交于 2020-02-07 03:47:26
1.time包 time包提供了时间的系那是和测量用的函数。日历的计算采用的是公历。 1.1时间类型 time.Time类型表示时间。我们可以通过time.Now()函数获取当前的事件对象,然后获取时间对象的年月日时分秒等信息。 package main import ( "fmt" "time" ) func main() { now := time.Now() //获取当前时间 fmt.Printf("current time:%v\n", now) year := now.Year() //年 month := now.Month() //月 day := now.Day() //日 hour := now.Hour() //小时 minute := now.Minute() //分钟 second := now.Second() //秒 fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second) } 结果: current time:2020-02-06 18:59:27.940916 +0800 CST m=+0.000227262 2020-02-06 18:59:27 Process finished with exit code 0 1.2时间戳

netty权威指南学习笔记四——TCP粘包/拆包之粘包问题解决

筅森魡賤 提交于 2020-02-07 00:25:52
  发生了粘包,我们需要将其清晰的进行拆包处理,这里采用LineBasedFrameDecoder来解决 LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或“\r\n”,如果有,就以此为结束位置,从可读索引到结束位置区间的字节就组成一行,它是以换行为结束标志的编码器,支持携带结束符或者不携带结束符两种方式,同时支持配置单行最大长度,如果连续读取到的最大长度后仍没有发现换行符,就会抛出异常,同时忽略掉之前读到的异常码流。 StringDecoder的功能非常简单,就是将接收到的对象转换为字符串,然后继续调用后面的Handler. LineBasedFrameDecoder+StringDecoder组合就是按行切换的文本解码器。 主要思路是改造客户端和服务端的处理IO的类之前添加相应解码器,解码器之后才去调用IO处理类的Handler。 客户端改造的代码部分 TheClientServer 在处理IO的类 initChannel()方法中调用处理IO类前添加相关解码的方法 1 public class ClientChildHandler extends ChannelInitializer<SocketChannel>{ 2 @Override 3 protected void initChannel

13.Go语言标准库之time包

▼魔方 西西 提交于 2020-02-06 20:19:33
1.time包 time包提供了时间的系那是和测量用的函数。日历的计算采用的是公历。 1.1时间类型 time.Time类型表示时间。我们可以通过time.Now()函数获取当前的事件对象,然后获取时间对象的年月日时分秒等信息。 package main import ( "fmt" "time" ) func main() { now := time.Now() //获取当前时间 fmt.Printf("current time:%v\n", now) year := now.Year() //年 month := now.Month() //月 day := now.Day() //日 hour := now.Hour() //小时 minute := now.Minute() //分钟 second := now.Second() //秒 fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second) } 结果: current time:2020-02-06 18:59:27.940916 +0800 CST m=+0.000227262 2020-02-06 18:59:27 Process finished with exit code 0 1.2时间戳

ZooKeeper的shell操作命令

﹥>﹥吖頭↗ 提交于 2020-02-01 03:53:47
ZooKeeper的shell操作命令 使用 zkServer.sh 启动ZooKeeper服务器后,接下来就可以使用 zkCli.sh 脚本启动ZooKeeper客户端来连接ZooKeeper服务器;Windows对应的是 zkServer.cmd 和 zkCli.cmd 。 (1)使用 help 命令可查看ZooKeeper的shell操作可用的命令,如下: [ zk: localhost:2181 ( CONNECTED ) 4 ] help ZooKeeper -server host:port cmd args stat path [ watch ] set path data [ version ] ls path [ watch ] delquota [ -n | -b ] path ls2 path [ watch ] setAcl path acl setquota -n | -b val path history redo cmdno printwatches on | off delete path [ version ] sync path listquota path rmr path get path [ watch ] create [ -s ] [ -e ] path data acl addauth scheme auth quit getAcl

java学习随手笔记(更新)

為{幸葍}努か 提交于 2020-01-31 18:02:24
java学习随手笔记(更新) 注: 该笔记中的知识点不具备连续性,这是我在学习Java中随手记下的东西,该笔记不是事无巨细的将所有的知识点一一记录,只是记录了我在听课过程中自我感觉需要记录的知识点。故此笔记不具备参考价值,如果您看到了这篇笔记,请将此略过。 向上转型是为了参数类型的统一 向下转型是为了调用子类中的特殊方法 工厂模式,耦合, 代理设计模式 包和访问控制权限 import语句只能出现在package语句之下,class定义的语句之上。 但是,在idea里编辑时却没有这些问题,不晓得是什么原因。 有时设置set classpath不起作用,可以看一下cmd的表头是不是有 系统无法在消息文件中为 Application 找到消息号为 0x2350 的消息文本。 如果有这个的话,应该在win+r里面直接控制cmd,这样问题才会解决 jar的一些命令 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项: -c 创建新档案 -t 列出档案目录 -x 从档案中提取指定的 (或所有) 文件 -u 更新现有档案 -v 在标准输出中生成详细输出 -f 指定档案文件名 -m 包含指定清单文件中的清单信息 -n 创建新档案后执行 Pack200 规范化 -e

MySQL NOW() 是否包含夏令时

限于喜欢 提交于 2020-01-29 16:45:35
文章目录 总结 实验过程 环境 NOW()会自动计算夏令时吗? 关于美国的夏令时 主机时区设置为Asia/Shanghai 结论 主机时区设置为America/Los_Angeles 结论 time_zone设置为时区名称 填充时区表 结论 遗留问题 参考文献 总结 MySQL的timezone值可以多种格式给出,都不区分大小写: 1 时区偏移量 ,表示从UTC开始的偏移量 [H]H:MM ,带有前缀 + 或 - ,例如, +[H]H:MM , -[H]H:MM 。当小时值小于10,可选择使用前导零;在这种情况下,MySQL在存储和检索时会预先设置前导零,将"-00:00"或"-0:00"转换为"+00:00"。时区偏移必须在"-12:59"到"13:00"的范围内。 NOW()不包含夏令时 时区名称 ,例如 'UTC' , 'Asia/Shanghai' , 'America/Los_Angeles' , 'Europe/Helsinki' , 'US/Eastern' , 'MET' 。当且仅当mysql已经创建并填充了数据库中的时区信息表时,才能使用时区名称 。 NOW()包含夏令时 SYSTEM ,指示服务器时区与主机系统时区相同。 取决于MySQL Server所在主机的时间 mysql> show variables like '%time_zone%'; +-----

CentOS 7 设置时间和日期

元气小坏坏 提交于 2020-01-26 06:17:18
CentOS 7 有两种类型的时间: 实时时间(Real-Time Clock,RTC),通常称为硬件时间,完全独立于操作系统运行,一般是由主板上的COMS负责维护,因此在操作系统关闭后也能运行。 系统时间(System Time),也称为软件时间,由Linux内核维护,其初始值基于硬件时间, 一旦Linux启动并且系统时间被初始化,系统时间就完全独立于硬件时间。 CentOS 7 提供了三个命令行工具,可以用来显示和配置时间: timedatectl,date, hwclock;timedatectl是CentOS 7的新工具,可以同时管理系统时间和硬件时间,date是CentOS 6就有的工具,只能管理系统时间,一般是脚本中用于格式化输出时间,hwclock主要用于管理硬件时间。 使用timedatectl命令 CentOS 7 中以ctl结尾的命令,几乎都是systemd的一部分,timedatectl也不例外。 显示当前日期和时间 [root@localhost ~]# timedatectl Local time: Fri 2018-07-20 17:46:09 CST Universal time: Fri 2018-07-20 09:46:09 UTC RTC time: Fri 2018-07-20 09:46:09 Time zone: Asia/Shanghai

c++11 内存模型解读

主宰稳场 提交于 2020-01-24 03:48:55
c++11 内存模型解读 关于乱序 说到内存模型,首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序通常并不是总按着照源码中的顺序一一执行,此谓之乱序,乱序产生的原因可能有好几种: 编译器出于优化的目的,在编译阶段将源码的顺序进行交换。 程序执行期间,指令流水被 cpu 乱序执行。 inherent cache 的分层及刷新策略使得有时候某些写读操作的从效果上看,顺序被重排。 以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果其实相同:写出来的代码与最后被执行的代码是不一致的。这个事实可能会让人很惊讶:有这样严重的问题,还怎么写得出正确的代码?这担忧是多余的了,乱序的现象虽然普遍存在,但它们都有很重要的一个共同点:在单线程执行的情况下,乱序执行与不乱序执行,最后都会得出相同的结果 (both end up with the same observable result), 这是乱序被允许出现所需要遵循的首要原则,也是为什么乱序虽然一直存在但却多数程序员大部分时间都感觉不到的根本原因。 乱序的出现说到底是编译器,CPU 等为了让你程序跑得更快而作出无限努力的结果,程序员们应该为它们的良苦用心抹一把泪。 从乱序的种类来看,乱序主要可以分为如下4种: 写写乱序(store store), 前面的写操作被放到了后面的操作之后,比如: a = 3; b = 4;

后端Springboot前端VUE实现Excel导入功能

China☆狼群 提交于 2020-01-20 17:45:06
功能描述:做的是物联网的项目,Excel导入实现的功能是将Excel中的数据批量的导入AEP系统,再导入我们系统中。目前已经完成该功能,前端还会添加进度条优化。Excel模板: 前端向后端传递的参数: 前端代码: <Upload name="wlwDeviceFile" ref="upload" :action="pathUrl" :on-success="handleSuccess" :on-error="handleError" :format="['xls','xlsx']" :max-size="5120" :on-format-error="handleFormatError" :on-exceeded-size="handleMaxSize" :before-upload="handleBeforeUpload" :data="extraData" :disabled="!isLock"> <Button type="primary">选择文件</Button></Upload> data() { return { isLock: true, mesg: false, extraData: { aepProductId: localStorage.productId, productId: localStorage.productItemId, projectId:

[网络流24题] 16.数字梯形问题 解题报告 (最大费用最大流)

旧巷老猫 提交于 2020-01-17 23:44:58
16.数字梯形问题 题意 有一个有数字组成的梯形, 该梯形有 \(n\) 行, 第一行有 \(m\) 列, 每一行都比前一行多一列. 有 \(m\) 条从梯形顶部到底部的路径, 分别以第一行的 \(m\) 个元素作为起点, 每次可以往左下或右下移动. 分别回答满足以下三个条件时, \(m\) 条路径上数字总和的最大值. \(m\) 条路径互不相交. \(m\) 条路径可以点相交, 不可以边相交. \(m\) 条路径既可以点相交, 也可以边相交. 思路 这一道题其实就是 DAG 不相交路径的各种变式. 第一问, 按照套路, 每个点只能出现一次, 那么就把每个点分为 入点 和 出点 , 入点和出点之间连一条容量为 \(1\) , 代价为 \(0\) 的边, 跑最大费用最大流就行了. 第二问, 本来是不用建入点和出点的, 但我们为了避免重复建图, 可以直接把入点到出点的边容量改为 \(inf\) , 其他的和原来一样. 需要注意的是, 不能修改了边权后直接在残量网络上跑最大流, 因为这时已经找不到增广路了. 第三问, 一开始本来是想 \(dp\) 的....但是给出题人点面子...那么就把除了从源点 \(S\) 练出来的边以外, 所有边的边权都改为 \(inf\) . (当然, 反向边除外). 代码 #include<bits/stdc++.h> using namespace std;