String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)

简介: String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)

简介:当时要写一个状态判断,然后自己就写出了一个时间比较的方法。当结束时间大于今天返回已结束,否则就是实习中。

主要是利用的compareTo方法:

左边的参数(begDate)如果小于右边的参数(endData)返回-1;反之返回1;相等返回0

System.out.println("参数 : "+begDate.compareTo(endData));

代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.time.temporal.Temporal;
import java.util.Date;
public class ShiJianBiJiao {
  public static void main(String[] aegs) throws ParseException {
//    ShiJianBiJiao shiJianBiJiao = new ShiJianBiJiao();
    /***
     * 第一个参数为开始时间,
     * 第二个为结束时间,
     * 当结束时间大于开始时间,
     * 并且结束时间大于今天
     * 返回"已结束"
     * **/
    //第一个参数为开始时间,第二个为结束时间。  当结束时间大于开始时间,并且结束时间大于今天返回"已结束"
    System.out.println(Timecompare("2022-08-01", "2023-09-05"));
  }
  public static  String Timecompare(String begTime,String endTime) throws ParseException {
    try {
      //注意format的格式要与日期String的格式相匹配
          DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          Date begDate  = sdf.parse(begTime);//开始时间
          Date endData = sdf.parse(endTime);//结束时间
          SimpleDateFormat dateFormat   = new SimpleDateFormat("YYYY-MM-dd");
          String aString = dateFormat.format(new Date());
          System.out.println("开始时间:    "+dateFormat.format(begDate));
          System.out.println("结束时间:    "+dateFormat.format(endData));
          System.out.println(LocalDate.now());
          //比较结束时间是否早于开始时间
          if (begDate.compareTo(endData) > 0) {
              return "开始时间大于结束时间";//0代表开始时间大于结束时间
          }
          /**
           * 左边的参数(begDate)如果小于右边的参数(endData)返回-1
           * 反之返回1
           * 相等返回0
           * 
           * */
          System.out.println("参数 : "+begDate.compareTo(endData));
          /**
           * 比较结束时间是否大于当前时间
           * (可以将aString 换成 LocalDate.now().toString())
           * 
           * */
         if(endData.compareTo(new Date()) < 0 && !endTime.equals(aString)){
         return "已结束";
      }
          return "进行中";
    } catch (Exception e) {
      StackTraceElement stackTraceElement =e.getStackTrace()[0];
      System.out.println("异常信息:"+e);
      return "请输入正确的时间格式:YYYY-MM-DD";
    }
    }
}

相关文章
|
2月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
47 1
|
3天前
|
索引
Sass String(字符串) 函数
Sass String(字符串) 函数用于处理字符串并获取相关信息。
11 1
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将STRING类型转换为DATETIME类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
29天前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
2月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
51 0
|
2月前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
45 0
|
2月前
|
存储 NoSQL 索引
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
|
2月前
|
开发工具 数据安全/隐私保护
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
|
2月前
|
存储 JSON NoSQL
揭秘Redis字符串String的隐藏技能!从基础到进阶,让你的数据存储操作秒变高大上!
【8月更文挑战第24天】Redis中的字符串类型作为其基石,不仅能够存储从简单文本到复杂格式如JSON的各种数据,还能通过多样化的命令实现包括但不限于自增自减、设置过期时间等高级功能,极大提升了其实用性和灵活性。例如,使用`SET`命令可添加或更新键值对,`GET`获取值,`DEL`删除键;同时,`INCR`和`DECR`支持对整数值的原子性增减操作,非常适合实现计数器等功能;通过`EXPIRE`命令设置过期时间,则适用于需要限时存储的应用场景。尽管名为“字符串”,但实际上还可存储图片、音频文件的Base64编码等形式的数据,为开发者提供了强大而灵活的工具。
38 0
|
2月前
|
存储 Java