关于SimpleDateFormat

问题描述

String date = "2011-01-12 26:12:12";SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String result = format.parse(date);本意是让这个date不合法的,因为小时大于24, 但结果是合法的, 日期自动加1, 返回2011-01-13 02:12:12试过将format.setLenient()设为true/false, 都不管用any suggestion? 问题补充:chenxiang105 写道

解决方案

String a = "2011-01-12 26:12:12";SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String b = sf.format(sf.parse(a));System.out.println(a.equals(b));这样就可以了。解析前和解析后为false所以不合法,合法的话就返回true
解决方案二:
public class test {public static void main(String[] args) {try {String a = "2011-01-12 28:12:12";if(invalidDate(a)){System.out.println("合法");}else{System.out.println("不合法");}} catch (Exception e) {e.printStackTrace();}}public static boolean invalidDate(String date) {SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");sf.setLenient(false);try {sf.parse(date);} catch (ParseException e) {//e.printStackTrace();return false;}return true;}}这样行吗?
解决方案三:
验证何不用 时间控件/js验证 处理一个小时间验证的问题...
解决方案四:
我都一直当成功能用. 汗... 我觉得是个不错的功能 我获得一个时间,要将他加上一天. 我自己控制的话还得考虑月底. 闰年二月等问题直接在天上+1 然后再格一次 嘿嘿 这些顾虑全没了,哈哈 Calendar 也有这功能太爽了 干嘛要出错类?? 我觉得很这个用起来很happy
解决方案五:
你想让他 parse 的时候就 检查不合法?

时间: 2024-10-22 17:17:42

关于SimpleDateFormat的相关文章

Java时间相关内容学习(5) SimpleDateFormat介绍

介绍SimpleDateFormat. SimpleDateFormat 介绍 SimpleDateFormat 是一个格式化Date 以及 解析日期字符串 的工具.它的最常用途是,能够按照指定的格式来对Date进行格式化,然后我们使用可以格式化Date后得到的字符串. 更严格的说,SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本).解析(文本 -> 日期)和规范化. SimpleDateFormat的构造函数: //

Android中的SimpleDateFormat详解

SimpleDateFormat, 是一种简单的格式, 构造时需要传入指定的参数, 包含参数名称和格式, 以匹配需要解析的字符串; Android API: http://developer.android.com/reference/java/text/SimpleDateFormat.html 使用方法: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"); Date qdate =

Java SimpleDateFormat 线程不安全问题及解决方法

Java SimpleDateFormat 是线程不安全的,当在多线程环境下使用一个DateFormat的时候是有问题的,如下面的例子: package com.heaven.threadpool; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; imp

SimpleDateFormat的线程安全问题与解决方案

尽量采用 org.apache.commons.lang.time.FastDateFormat FastDateFormat FastDateFormat is a fast and thread-safe version of java.text.SimpleDateFormat. This class can be used as a direct replacement to SimpleDateFormat in most formatting situations. This cla

java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类

java中的日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类 今天花了好大一点时间把java的日期类做了一下整理,哈 1. Date类(该类现在很少用了) l Date类对象的创建: n 创建一个当前时间 //默认是创建一个代表系统当前日期的Date对象 Date d = new Date(); n 创建一个我们指定的时间的Date对象: 下面是使用带参数的构造方法,可以构造指定日期的Date类对象,Date

Java Date SimpleDateFormat

  public static void main(String[] args) { long millis = 1492741275301L; Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); Date time = calendar.getTime(); System.out.println(time); System.out.println(DateFormatUtils.format

SimpleDateFormat的小问题

问题描述 java.text.SimpleDateFormat中可解析的合法的日期时间的字符串都有哪些? 解决方案 解决方案二:这个看看API啊字母日期或时间元素表示示例GEra标志符TextADy年Year1996;96M年中的月份MonthJuly;Jul;07w年中的周数Number27W月份中的周数Number2D年中的天数Number189d月份中的天数Number10F月份中的星期Number2E星期中的天数TextTuesday;TueaAm/pm标记TextPMH一天中的小时数(

java-使用simpledateformat转换时出现了32号

问题描述 使用simpledateformat转换时出现了32号 java中使用simpledateformat格式化日期,出现了2016-03-32 00:00:00,秒数是1459440000,但是只出现过一次,非必现,有大牛知道这是为什么吗...? 解决方案 线程安全的问题!http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html 解决方案二: 怎么可能呢,应该其他的问题

SimpleDateFormat使用详解

package cc.testsimpledateformat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import android.app.Activity; import android.os.Bundle; /** * SimpleDateFormat * 一个与语言环境相关的格式化日期和分析日期的工具类. *

SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");

问题描述 SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");sd.format("2010-08-31");2010-08-31为什么转不过来呢?怎么样才可以转这个手写的日期呢? 问题补充:可是我想要转化成20080831而已,你这个方法好像不行ffyahoo 写道 解决方案 你要把2010-08-31转成20100831干吗要用simpledateformat 你直接replaceAll不就可以了解决方案二: