DateUtil

package com.hisun.ecif.util;


import java.util.GregorianCalendar;
import java.util.SimpleTimeZone;
import java.util.TimeZone;


public class DateUtils {
GregorianCalendar now;
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
String[] daysOfWeek = { "日", "一", "二", "三", "四", "五", "六" };


public DateUtils() {
String[] ids = TimeZone.getAvailableIDs(28800000);
if (ids.length == 0) {
this.now = new GregorianCalendar();
} else {
SimpleTimeZone pdt = new SimpleTimeZone(28800000, ids[0]);


this.now = new GregorianCalendar(pdt);
}
this.year = this.now.get(1);
this.month = (this.now.get(2) + 1);
this.day = this.now.get(5);
this.hour = this.now.get(11);
this.minute = this.now.get(12);
this.second = this.now.get(13);
}


public String getMMDDhhmm() {
String dateString = new String();
if (this.month < 10) {
dateString = dateString + "0" + Integer.toString(this.month);
} else {
dateString = dateString + Integer.toString(this.month);
}
if (this.day < 10) {
dateString = dateString + "0" + Integer.toString(this.day);
} else {
dateString = dateString + Integer.toString(this.day);
}
if (this.hour < 10) {
dateString = dateString + "0" + Integer.toString(this.hour);
} else {
dateString = dateString + Integer.toString(this.hour);
}
if (this.minute < 10) {
dateString = dateString + "0" + Integer.toString(this.minute);
} else {
dateString = dateString + Integer.toString(this.minute);
}
return dateString;
}


public String getMMDDhhmmss() {
String dateString = getMMDDhhmm();
if (this.second < 10) {
dateString = dateString + "0" + Integer.toString(this.second);
} else {
dateString = dateString + Integer.toString(this.second);
}
return dateString;
}


public String getYYYYMMDD() {
String dateString = new String();


dateString = Integer.toString(this.year);
if (this.month < 10) {
dateString = dateString + "0" + Integer.toString(this.month);
} else {
dateString = dateString + Integer.toString(this.month);
}
if (this.day < 10) {
dateString = dateString + "0" + Integer.toString(this.day);
} else {
dateString = dateString + Integer.toString(this.day);
}
return dateString;
}


public String getYYYY_MM_DD() {
String dateString = new String();


dateString = Integer.toString(this.year) + "-";
if (this.month < 10) {
dateString = dateString + "0" + Integer.toString(this.month);
} else {
dateString = dateString + Integer.toString(this.month);
}
dateString = dateString + "-";
if (this.day < 10) {
dateString = dateString + "0" + Integer.toString(this.day);
} else {
dateString = dateString + Integer.toString(this.day);
}
return dateString;
}


public String getYYYYMMDDhhmmss() {
return Integer.toString(this.year) + getMMDDhhmmss();
}


public String getChineseDate() {
String dateString = this.year + "年";
dateString = dateString + this.month + "月";
dateString = dateString + this.day + "日,";
dateString = dateString + "星期" + this.daysOfWeek[(this.now.get(7) - 1)];


return dateString;
}


public int getHour() {
return this.hour;
}


public int getMinute() {
return this.minute;
}


public int getDay() {
return this.day;
}


public int getMonth() {
return this.month;
}


public int getYear() {
return this.year;
}
}
### Python `dateutil` 库使用指南 #### 导入必要的模块 为了处理涉及相对时间间隔的任务,比如增加或减少特定数量的月份或年份,可以利用 `dateutil.relativedelta` 模块。这使得执行复杂的日期运算变得简单。 ```python from dateutil.relativedelta import relativedelta ``` #### 创建和操作日期对象 创建一个基础日期对象之后,可以通过应用 `relativedelta` 来调整该日期。下面的例子展示了如何向当前日期添加两个月: ```python from datetime import datetime two_months_later = datetime.now() + relativedelta(months=+2) print(two_months_later.strftime('%Y-%m-%d')) ``` #### 处理复杂的时间增量 当需要更精确地控制时间单位的变化时,例如同时改变天数、星期几以及月份等多方面因素,同样能够借助于 `relativedelta` 实现这样的需求[^3]。 ```python complex_date_change = datetime.now() + relativedelta(days=+1, weekday=FR, months=+1) print(complex_date_change.strftime('%Y-%m-%d')) ``` 这需要注意的是,在上述例子中,`weekday=FR` 表示找到下一个周五;如果今天已经是周五,则保持不变。 #### 解析字符串形式的日期 除了用于计算外,`dateutil` 还提供了强大的功能来解析各种格式化的日期字符串。这对于从不同源获取的数据特别有用,因为这些数据可能具有多种不同的日期表示方式。 ```python from dateutil.parser import parse parsed_date = parse("Aug 28 2022 9:30AM") print(parsed_date.isoformat()) ``` 以上代码会自动识别并转换给定的日期字符串为标准 ISO 格式的 `datetime` 对象[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值