日期常用方法

  #region 日期公用方法
          /// <summary>
       /// 返回标准日期格式string
       /// </summary>
       public static string GetDate()
       {
           return DateTime.Now.ToString("yyyy-MM-dd");
       }

       /// <summary>
       /// 返回指定日期格式
       /// </summary>
       public static string GetDate(string datetimestr, string replacestr)
       {
           if (datetimestr == null)
           {
               return replacestr;
           }

           if (datetimestr.Equals(""))
           {
               return replacestr;
           }

           try
           {
               datetimestr = Convert.ToDateTime(datetimestr).ToString("yyyy-MM-dd").Replace("1900-01-01", replacestr);
           }
           catch
           {
               return replacestr;
           }
           return datetimestr;

       }


       /// <summary>
       /// 返回标准时间格式string
       /// </summary>
       public static string GetTime()
       {
           return DateTime.Now.ToString("HH:mm:ss");
       }

       /// <summary>
       /// 返回标准时间格式string
       /// </summary>
       public static string GetDateTime()
       {
           return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
       }

       /// <summary>
       /// 返回相对于当前时间的相对天数
       /// </summary>
       public static string GetDateTime(int relativeday)
       {
           return DateTime.Now.AddDays(relativeday).ToString("yyyy-MM-dd HH:mm:ss");
       }

       /// <summary>
       /// 返回标准时间格式string
       /// </summary>
       public static string GetDateTimeF()
       {
           return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fffffff");
       }

       /// <summary>
       /// 返回标准时间
       /// </sumary>
       public static string GetStandardDateTime(string fDateTime, string formatStr)
       {
           if (fDateTime == "0000-0-0 0:00:00")
           {
               return fDateTime;
           }
           DateTime s = Convert.ToDateTime(fDateTime);
           return s.ToString(formatStr);
       }

       /// <summary>
       /// 返回标准时间 yyyy-MM-dd HH:mm:ss
       /// </sumary>
       public static string GetStandardDateTime(string fDateTime)
       {
           return GetStandardDateTime(fDateTime, "yyyy-MM-dd HH:mm:ss");
       }

       /// <summary>
       /// 返回标准时间 yyyy-MM-dd
       /// </sumary>
       public static string GetStandardDate(string fDate)
       {
           return GetStandardDateTime(fDate, "yyyy-MM-dd");
       }

    

        #endregion

<think>我们正在讨论Java日期类的常用方法。用户要求总结常用日期方法,并且我们之前已经提供了一些示例(Date、Calendar、LocalDateTime等)。现在用户再次询问,并且提供了一些引用,但这些引用似乎与日期类关系不大(除了引用[1]提到了DateFormat类)。因此,我们将重点放在日期类的常用方法上,并参考之前提供的示例。根据用户的上一次问题和我们的回答,我们可以总结如下:1.`Date`类(java.util.Date):基本日期时间类,但很多方法已过时。2.`Calendar`类(java.util.Calendar):提供更强大的日期操作,但也是旧版API。3.Java8引入的新日期时间API(java.time包):包括`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等,是当前推荐使用的。另外,引用[1]提到了DateFormat类,它用于格式化和解析日期字符串。因此,我们将按照以下结构组织回答:1.旧版日期类(Date和Calendar)的常用方法(简要提及,因为已过时)2.新版日期时间API(java.time包)的常用方法(重点)3.日期格式化与解析(DateFormat和DateTimeFormatter)注意:由于引用[2][3][4]与日期类无关,我们忽略它们,只参考引用[1]中关于DateFormat的部分。下面开始总结:</think>### Java日期常用方法总结 Java提供了多种日期时间处理类,以下是核心类的常用方法总结: #### 一、`java.util.Date`类(旧版API) ```java // 创建对象 Date now = new Date(); // 当前时间[^1] // 常用方法 long time = now.getTime(); // 获取毫秒时间戳 boolean after = now.after(date); // 比较是否在指定日期后 boolean before = now.before(date); // 比较是否在指定日期前 now.setTime(1672531200000L); // 设置时间戳[^1] ``` #### 二、`java.util.Calendar`类(旧版API) ```java Calendar cal = Calendar.getInstance(); // 获取实例 cal.set(2023, Calendar.DECEMBER, 31); // 设置日期 // 常用方法 int year = cal.get(Calendar.YEAR); // 获取年份 int month = cal.get(Calendar.MONTH); // 获取月份(0-11) int day = cal.get(Calendar.DAY_OF_MONTH); // 获取日 cal.add(Calendar.DAY_OF_MONTH, 7); // 日期加减操作 cal.setTime(new Date()); // 设置Date对象[^1] ``` #### 三、`java.time`包(Java 8+ 新版API) 1. **`LocalDate`** (日期) ```java LocalDate today = LocalDate.now(); // 当前日期 LocalDate date = LocalDate.of(2023, 12, 31); // 创建日期 // 常用操作 date.plusDays(7); // 加天数 date.minusMonths(1); // 减月数 int year = date.getYear(); DayOfWeek dow = date.getDayOfWeek(); // 获取星期[^1] ``` 2. **`LocalTime`** (时间) ```java LocalTime now = LocalTime.now(); // 当前时间 LocalTime time = LocalTime.parse("15:30:45"); // 解析时间 // 常用操作 time.getHour(); time.plusHours(2); time.isAfter(LocalTime.NOON); // 是否在中午后 ``` 3. **`LocalDateTime`** (日期时间) ```java LocalDateTime ldt = LocalDateTime.now(); LocalDateTime dt = LocalDateTime.of(2023, 12, 31, 23, 59); // 转换操作 ldt.toLocalDate(); // 转日期部分 ldt.toLocalTime(); // 转时间部分 ldt.plusWeeks(1); // 加周数[^1] ``` 4. **`DateTimeFormatter`** (格式化) ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); String formatted = ldt.format(formatter); // 格式化输出 LocalDateTime parsed = LocalDateTime.parse("2023-12-31 23:59", formatter); // 解析[^1] ``` 5. **时间差计算** ```java // 日期差 Period period = Period.between(LocalDate.now(), LocalDate.of(2024, 1, 1)); // 时间差 Duration duration = Duration.between(LocalTime.now(), LocalTime.MIDNIGHT); ``` #### 四、`DateFormat`类(格式化) ```java DateFormat df = DateFormat.getDateInstance(DateFormat.LONG); String str = df.format(new Date()); // 日期→字符串 Date date = df.parse("2023年12月31日"); // 字符串→日期[^1] ``` > **新旧API对比建议**: > 1. 新项目优先使用`java.time`包(线程安全、API设计更合理) > 2. 旧系统维护可使用`Calendar`类 > 3. 避免直接使用`Date`的构造方法/过时方法 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值