java 日期 怎么 去 零

时间长度不确定,要将
例如:200901010000变成20090101 ,2009011000变为20090110这样子。
请问有无有什么比较好的思路
如果是200901010100 我得出的日期就要2009010101,得出的结果不是固定的8位

就是后面没意义的0都不要。。
200900->2009 ,2009010000->200901
循环我想过啊,但是200910这样的,你循环了不是20091?
你写出来看看。

SimpleDateFormat
用这个去转。
思路是这样的,循环去掉最后0,要保留偶数位,也就是说20091010的最后一个0要保留。
(判断的时候,先看字符串的长度是奇数还是偶数,如果是奇数,)
然后根据长度,去顶格式yyyy-MM-dd或者yyyy-MM或者yyyy等等情况。
还是我写吧,写完给你。
public class StringToDate {
public String stringToDate(String str){
int length=str.length();
char c="0".charAt(0);
if(str.length()%2==1){
if(Character.valueOf(c).equals(Character.valueOf(str.charAt(length-1)))){
str=str.substring(0,str.length()-1);
return stringToDate(str);
}else{
return str;
}
}else{
if(Character.valueOf(c).equals(Character.valueOf(str.charAt(length-1)))&&
Character.valueOf(c).equals(Character.valueOf(str.charAt(length-2))) ){
str=str.substring(0,str.length()-2);
return stringToDate(str);
}else{
return str;
}
}
}
public static void main(String[] args) {
StringToDate std=new StringToDate();
System.out.println(std.stringToDate("200901010000"));
System.out.println(std.stringToDate("200901000000"));
System.out.println(std.stringToDate("200901010000"));
System.out.println(std.stringToDate("200910010000"));
System.out.println(std.stringToDate("200910"));
System.out.println(std.stringToDate("200910000000"));
}
}
结果
20090101
200901
20090101
20091001
200910
200910

应该可以了,就是递归判断字符串的长度,奇数判断最后一位是否为0,偶数就判断后2位是否为0.
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-06
若你的日期对象是date类型可直接用 用DateFormat格式化。
若是string类型是只是在后面偶尔出现不知道几个0的话可以用String对象的subSting方法来直接截取前8位即可。当然要先判断一下这个字符串长度够不够8位。要不会有下标越界的异常
那你要的是什么呢?
你描述的明白点
2009010101 这个是什么概念?2009年1月1日1点?
这个简单
写个方法循环这个字符串
并保留最后一个非零值下标。然后从这个字符串截取即可。
方法用我给你么?

public class Dates
{
public static String getMyDate(String s)
{
int tmp=0;
for(int i=0;i<s.length();i++)
{
if(!"0".equalsIgnoreCase(String.valueOf(s.charAt(i))))
{
tmp=i;
}
}
return s.substring(0,tmp+1);
}

public static void main(String aa[])
{
System.out.println(Dates.getMyDate("20010101010000000"));
System.out.println(Dates.getMyDate("20010101010sd00000"));
}
}
第2个回答  2010-12-06
如果后面都是010101之类的你可以用字符替换,把1后面0替换成空格
第3个回答  2010-12-06
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.format(你的日期变量);
第4个回答  2010-12-06
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
sdf.format(new date());本回答被网友采纳

java 日期 怎么 去零
思路是这样的,循环去掉最后0,要保留偶数位,也就是说20091010的最后一个0要保留。(判断的时候,先看字符串的长度是奇数还是偶数,如果是奇数,)然后根据长度,去顶格式yyyy-MM-dd或者yyyy-MM或者yyyy等等情况。还是我写吧,写完给你。public class StringToDate { public String stringToDate(String...

生成的日期格式化时怎样将月份前的0去掉java?
没有详细的说明,是不是这个意思,把日期转成字符串时,月份前面的0去掉,下面示例 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMdd");System.out.println(sdf.format(new java.util.Date()));

java 输出系统日期格式前面有0
SimpleDateFormat s = new SimpleDateFormat("yyyyy-MM-EEEE-dd-hh-mm-ss");你多加了一个y,去掉一个y就好了 SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-EEEE-dd-hh-mm-ss");

java日期变换 20120101->2012年1月1日 20121111->2012年11月11日...
String b ="";b= a.subString(0,3)+年;if(a.shuString(4,4).equals("0")){ b=b+a.shuString(4,4)+"月"+a.shuString(5,a.length).+“日”}else{ b=b + a.shuString(4,5).+“月”+a.subString(6,a.length)+"日";} 大概就是这么个意思,...

Java 读取Oracle数据库中的Date日期型怎么去掉秒后面的0
jsp 见面吗? 如果是i的话。 就用JSTL的<fmt:formatDate value="${值}" type="yyyy-MM-dd">标签 好像是这样的 长时间没用了 。 去谷歌搜一下

java怎么取下一天的零点?
\/\/取当前时间的下一日期整点 供参考 SimpleDateFormat format = null;Date date = null;Calendar myDate = Calendar.getInstance();myDate.add(Calendar.DAY_OF_MONTH, 1);date = myDate.getTime();format = new SimpleDateFormat("yyyy-MM-dd 00:00:00");String rtnYes = format.format(...

java取下一天的零点,求大神帮忙不胜感激!
private Date getTimeOf12() { Calendar cal = Calendar.getInstance();cal.setTime(new Date());cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MILLISECOND, 0);cal.add(Calendar.DAY_OF_MONTH, 1);return cal.getTime(...

java 数据库中的时间数据是日期时间型的,就是带几分几秒的,怎么吧后面...
如果是查询数库的话, 可以直接用 to_char 把时间转成字符串,并指令format 格式

java中获取时间怎么格式化?
一、使用Java日期时间API获取时间 Java 8之后,引入了新的日期时间API,包括LocalDate、LocalTime、LocalDateTime等类。这些类为我们提供了获取当前日期和时间的方法。例如,使用LocalDateTime.now可以获取当前日期和时间。二、时间格式化的方法 获取到时间后,我们经常需要将其格式化为特定的字符串形式,以便于...

JAVA日期格式转换去除“-”和加“-”
replaceAll("-","");new StringBuilder().append(s.substring(0,4)).append("-").append(s.substring(4,6)).append("-").append(s.substring(6,8)).toString()

相似回答