先把string类型的date转换成DateTime:
DateTime newDate=DateTimeparse(date);
然后:
1、string first=newDateAddMonths(-1)ToString("yyyyMM");
2、string second=newDateToString("yyyyMM");
3、string thirdly=newDateToString("yyyy/MM/dd");
重点是了解一下DateTime这个结构,很多方法用起来很方便的。
多看MSDN:>
import javatextSimpleDateFormat;
import javautilCalendar;
import javautilDate;
public class Main {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String args[]) {
Date d = new Date();
// 月初
Systemoutprintln("月初" + sdfformat(getMonthStart(d)));
// 月末
Systemoutprintln("月末" + sdfformat(getMonthEnd(d)));
Date date = getMonthStart(d);
Date monthEnd = getMonthEnd(d);
while (!dateafter(monthEnd)) {
Systemoutprintln(sdfformat(date));
date = getNext(date);
}
}
private static Date getMonthStart(Date date) {
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
int index = calendarget(CalendarDAY_OF_MONTH);
calendaradd(CalendarDATE, (1 - index));
return calendargetTime();
}
private static Date getMonthEnd(Date date) {
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
calendaradd(CalendarMONTH, 1);
int index = calendarget(CalendarDAY_OF_MONTH);
calendaradd(CalendarDATE, (-index));
return calendargetTime();
}
private static Date getNext(Date date) {
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
calendaradd(CalendarDATE, 1);
return calendargetTime();
}
}
这是一个月的 你改改就能写出上个月的了吧
DateTime dt = DateTimeNow; //当前时间
DateTime startWeek = dtAddDays(1 - ConvertToInt32(dtDayOfWeekToString("d"))); //本周周一
DateTime endWeek = startWeekAddDays(6); //本周周日
DateTime startMonth = dtAddDays(1 - dtDay); //本月月初
DateTime endMonth = startMonthAddMonths(1)AddDays(-1); //本月月末
//DateTime endMonth = startMonthAddDays((dtAddMonths(1) - dt)Days - 1); //本月月末
DateTime startQuarter = dtAddMonths(0 - (dtMonth - 1) % 3)AddDays(1 - dtDay); //本季度初
DateTime endQuarter = startQuarterAddMonths(3)AddDays(-1); //本季度末
DateTime startYear = new DateTime(dtYear, 1, 1); //本年年初
DateTime endYear = new DateTime(dtYear, 12, 31); //本年年末
至于昨天、明天、上周、上月、上季度、上年度等等,只要AddDays()、AddMonths()、AddYears()这几种方法组合一下就可以了。
C#中datetime的使用
//如果你还不明白,再看一下中文显示星期几的方法就应该懂了
//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
string week = Day[ConvertToInt32(DateTimeNowDayOfWeekToString("d"))]ToString();
//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) - 7); //上周一
DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) - 7)AddDays(6); //上周末(星期日)
//下周
DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) + 7); //下周一
DateTimeNowAddDays(ConvertToInt32(1 - ConvertToInt32(DateTimeNowDayOfWeek)) + 7)AddDays(6); //下周末
//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
//一般的写法
DateTimeNowYearToString() + DateTimeNowMonthToString() + "1"; //第一天
DateTimeParse(DateTimeNowYearToString() + DateTimeNowMonthToString() + "1")AddMonths(1)AddDays(-1)ToShortDateString();//最后一天
//巧用C#里ToString的字符格式化更简便
DateTimeNowToString("yyyy-MM-01");
DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(1)AddDays(-1)ToShortDateString();
//上个月,减去一个月份
DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(-1)ToShortDateString();
DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();
//下个月,加去一个月份
DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(1)ToShortDateString();
DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(2)AddDays(-1)ToShortDateString();
//7天后
DateTimeNowDateToShortDateString();
DateTimeNowAddDays(7)ToShortDateString();
//7天前
DateTimeNowAddDays(-7)ToShortDateString();
DateTimeNowDateToShortDateString();
//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
DateTimeParse(DateTimeNowToString("yyyy-01-01"))ToShortDateString();
DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(1)AddDays(-1)ToShortDateString();
//上年度,不用再解释了吧
DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(-1)ToShortDateString();
DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddDays(-1)ToShortDateString();
//下年度
DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(1)ToShortDateString();
DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(2)AddDays(-1)ToShortDateString();
//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
DateTimeNowAddMonths(0 - ((DateTimeNowMonth - 1) % 3))AddDays(1 - DateTimeNowDay);
//同理,本季度的最后一天就是下季度的第一天减一
DateTimeParse(DateTimeNowAddMonths(3 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();
//下季度,相信你们都知道了。。。。收工
DateTimeNowAddMonths(3 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01");
DateTimeParse(DateTimeNowAddMonths(6 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();
//上季度
DateTimeNowAddMonths(-3 - ((DateTimeNowMonth - 1) % 3)) AddDays(1 - DateTimeNow);
DateTimeNowAddMonths(0 - ((DateTimeNowMonth - 1) % 3))AddDays(1 - DateTimeNowDay)AddDays(-1)ToShortDateString();
编写脚本getdatesh:
[plain] view plain copy
#! /bin/sh
nowdate=`date +%Y%m01` #本月第一天
startdate=`date -d"$nowdate last month" +%Y%m%d` #上个月第一天
enddate=`date -d"$nowdate last day" +%Y%m%d` #上个月最后一天
#遍历上个月的每一天
while (( $startdate <= $enddate ))
do
echo $startdate
startdate=`date -d "+1 day $startdate" +%Y%m%d`
/
获得上个月月份
/
public static String getLastMouth(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMM");
Calendar calendar=CalendargetInstance();
//calendarset(2010,5,0);
calendarsetTime(new Date());
//calendaradd(CalendarMONTH, -1);
//取得上一个月时间
calendarset(CalendarMONTH,calendarget(CalendarMONTH)-1);
String lastMonth= sdfformat(calendargetTime());
return lastMonth;
}
最好一天自己百度下
//取得系统当前时间
Calendar cal = CalendargetInstance();
//取得系统当前时间所在月第一天时间对象
calset(CalendarDAY_OF_MONTH, 1);
//日期减一,取得上月最后一天时间对象
caladd(CalendarDAY_OF_MONTH, -1);
//输出上月最后一天日期
Systemoutprintln(calget(CalendarDAY_OF_MONTH));
@echo off
title 获取上月日期 By HiSen QQ:185867604
echo 正在获取中。。。。
setlocal enabledelayedexpansion
set mm=%date:~0,7%
set _mm=%mm:-=%
set nn=%_mm:~-2%
if %nn% neq 10 set _nn=%nn:0=% &goto two
set _nn=%nn%
:two
set /a xx=%_nn%-1
set yy=%_mm:~0,4%
set _yy=%yy: =%
if %xx% equ 0 (
set /a m=%_yy%-1
echo !m!12>syrqdat
) else (
set _xx=00!xx!
echo %yy%!_xx:~-2!
)
endlocal
pause
以上就是关于截取字符串日期,获取字符串日期上个月,等处理问题全部的内容,包括:截取字符串日期,获取字符串日期上个月,等处理问题、java 怎样根据选择的日期月份得到其上一个日期月份、java 根据日期获取当月所有日期,和 上个月所有日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)