时间格式不一样时怎么比较值的大小

背景

开发接口返回的时间数据格式和我从数据库中获取的数据格式不一致
开发的接口返回,时间格式中带有一个T

{
  "status": 200,
  "countryCode": "US",
  "currencyCode": "USD",
  "data": "2022-12-15T03:35:00.523-0800"
}

而我从数据库中获取的时间是没有T的,例如这样的

2022-12-19 00:40:31

时间比较

其中我还需要从数据库获取三个时间字段然后比较大小,去时间最大的
1、我首先是使用 Convert Date 全部转化为时间戳然后统一比较

${date0}	Convert Date	${newRenew_maxUpdateTime}	epoch

在这里插入图片描述
转化后的时间戳长这样,数值越大,时间越大

1671046468.92

然后我使用Set Variable If 函数挑取时间最大的并同时赋值

${date}	Set Variable If	${date1}>${date2}	${date1}	${date2}

时间截取

使用字符串分割函数Split String 不加分隔字符的话就是按照空格分隔

${dateResponse}	Split String	${response}	T

2022-12-15T03:35:00.523-0800 截取前面的年月日

${dateList}	Split String	${date}	

2022-12-19 00:40:31 截取前面的年月日

最后可以比较两个相同格式的年月日,因为我是比较两个年月日一样的情况,所以我直接比较字符串相等就可以了

如果是比较大小,那可以进行年月拆分,然后按照拆分的年月日时分秒来比较,不一样就循环停止
在这里插入图片描述

   CAPI.URL    GET /api/renew/opportunity/latestUpdateTime
    ${response}    CAPI.GetRequest    /stellr-renewal-engine/api/renew/opportunity/latestUpdateTime    /data    \    ${api_url}
    log    ${response}
    ${newRenew_maxUpdateTime}    MySql.GetAllQueryResult    SELECT update_datetime from stellr_renew_opportunity where is_latest = 1 and delete_id is null and country_code = 'US' ORDER BY update_datetime DESC limit 1     ${solv_db}    ${cloudsolv_db}    ${solv_port}
    ${oldRenew_maxUpdateTime}    Sybase.GetAllRowQueryResult    SELECT top 1 convert(DATETIME,update_date) FROM service_contract_renew WHERE delete_id is NULL and delete_date IS NULL \ order by update_date \ DESC
    ${oldRenew_maxEntryTime}    Sybase.GetAllRowQueryResult    SELECT top 1 convert(DATETIME,entry_date) FROM service_contract_renew WHERE delete_id is NULL and delete_date IS NULL \ order by entry_date \ DESC
    log    ${newRenew_maxUpdateTime}
    ${date0}    Convert Date    ${newRenew_maxUpdateTime}    epoch
    log    ${date0}
    ${date1}    Convert Date    ${oldRenew_maxUpdateTime[0]}    epoch
    log    ${date1}
    ${date2}    Convert Date    ${oldRenew_maxEntryTime[0]}    epoch
    log    ${date2}
    ${date}    Set Variable If    ${date1}>${date2}    ${date1}    ${date2}
    ${date}    Set Variable If    ${date}>${date0}    ${date0}    ${date}
    ${date}    Convert Date    ${date}    exclude_millis=yes    date_format=%m.%d.%Y
    ${dateList}    Split String    ${date}
    LOG    ${dateList[0]}
    ${dateResponse}    Split String    ${response}    T
    LOG    ${dateResponse[0]}
    Should Be Equal    ${dateList[0]}    ${dateResponse[0]}

额,这真的是一个比较笨的方法,暂时自己先琢磨了这个笨办法。大家有什么更好的方法一起分享吗

### 回答1: 是的,Yarn 和 npm 安装包的大小可能会有所不同。Yarn 会在本地缓存安装过的包,而 npm 则不会。因此,如果你使用 Yarn 安装了同一个包多次,它在本地的缓存就会越来越大,而 npm 则不会。 ### 回答2: yarn和npm是两种常用的JavaScript软件包管理工具。他们在安装软件包大小可能不一样,原因如下。 首先,yarn和npm使用不同的算法来压缩软件包。yarn使用了一种称为“tarball”的文件压缩格式,该格式具有更高的压缩率和更小的文件大小。而npm使用的是“gzip”压缩格式,虽然也具有一定的压缩能力,但相对而言压缩率会稍低一些。 其次,yarn和npm在处理依赖关系的算法也不同,这也可能导致安装包大小的差异。yarn使用了一种称为“yarn.lock”的文件,它记录了具体依赖关系的版本和位置信息。这个文件可以确保每次安装都使用相同的依赖关系,从而避免不必要的下载和更新,减小了安装包的大小。而npm则使用一种基于“package.json”的算法来管理依赖关系,可能会在下载和安装依赖包产生一些不必要的重复操作,导致包的大小变大。 最后,yarn和npm也可能在下载软件包选择不同的源或镜像服务器,这也可能导致包的大小存在差异。不同的源服务器可能存储着不同版本的软件包,其中一些版本可能经过了更高效的压缩或优化,因此在下载后的文件大小上存在差异。 综上所述,yarn和npm在安装包大小上的差异主要源于压缩算法、依赖关系处理算法以及源服务器的选择等因素。 ### 回答3: Yarn和Npm是两种常见的包管理工具。它们都可以用来下载和安装软件包,但是在安装包的大小方面有一些不同。 首先,Yarn和Npm使用不同的算法来计算包的大小。Yarn使用的是压缩包的大小,这意味着它只计算压缩后的文件大小。而Npm使用的是解压缩后的大小,这意味着它会计算解压缩后的文件大小。 其次,Yarn和Npm在处理依赖关系有所不同。Yarn使用了一个lock文件,将安装包的版本信息锁定在一个特定的版本上。这样可以避免在多次安装下载不同版本的包,减小了安装包的大小。而Npm在处理依赖关系,并不会使用lock文件,因此在每次安装都会下载最新的包,所以安装包的大小会比Yarn大一些。 另外,Yarn在下载和安装包的过程中采用了并发的方式,可以同下载多个包,并且可以利用缓存来提高下载速度。这样可以减少网络传输的时间,从而也减小了安装包的大小。而Npm在下载和安装包是串行进行的,只能一个接一个地下载和安装,所以安装包的大小相对较大。 总的来说,Yarn和Npm在计算包的大小和处理依赖关系有所不同,这导致了它们安装包的大小不一样。选择使用哪种包管理工具取决于具体的需求和项目的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值