`
zljpp
  • 浏览: 259424 次
社区版块
存档分类
最新评论

新手学java(1) - java时间处理工具类

阅读更多

 

共享一下前几天整理的java时间工具类

 

1 import java.io.PrintStream;
  2 import java.sql.Time;
  3 import java.sql.Timestamp;
  4 import java.text.ParsePosition;
  5 import java.text.SimpleDateFormat;
  6 import java.util.Date;
  7 public class TimeUtil
  8 {
  9 /*
 10 www.pmjava.com java编程
 11 */
 12 public TimeUtil()
 13 {
 14 }
 15 public static Date strToDate(String sStr)
 16 {
 17 if (sStr == null)
 18 return null;
 19 SimpleDateFormat formatter;
 20 if (sStr.length() == 19)
 21 formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 22 else
 23 if (sStr.length() == 10)
 24 formatter = new SimpleDateFormat("yyyy-MM-dd");
 25 else
 26 if (sStr.length() == 8)
 27 formatter = new SimpleDateFormat("yyyyMMdd");
 28 else
 29 if (sStr.length() == 14)
 30 formatter = new SimpleDateFormat("yyyyMMddHHmmss");
 31 else
 32 formatter = new SimpleDateFormat("yyyyMMddHHmmss");
 33 ParsePosition pos = new ParsePosition(0);
 34 return formatter.parse(sStr, pos);
 35 }
 36 public static Timestamp strToDatetime(String s)
 37 {
 38 return new Timestamp(strToDate(s).getTime());
 39 }
 40 public static String datetimeToChinese(Date dtSource)
 41 {
 42 SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
 43 return formatter.format(dtSource);
 44 }
 45 public static String dateToStr(Date date)
 46 {
 47 SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
 48 return format.format(date);
 49 }
 50 public static String datetimeToStr(Date date)
 51 {
 52 if (date == null)
 53 {
 54 return "";
 55 else
 56 {
 57 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 58 return formatter.format(date);
 59 }
 60 }
 61 public static String today()
 62 {
 63 return dateToStr(new Date());
 64 }
 65 public static String now()
 66 {
 67 return datetimeToStr(new Date());
 68 }
 69 public static String calcTime(String time, int diffYear, int diffMonth, int diffDate, int diffHour, int diffMinute, int diffSecond)
 70 {
 71 Timestamp timestamp = strToDatetime(time);
 72 timestamp.setYear(timestamp.getYear() + diffYear);
 73 timestamp.setMonth(timestamp.getMonth() + diffMonth);
 74 timestamp.setDate(timestamp.getDate() + diffDate);
 75 timestamp.setHours(timestamp.getHours() + diffHour);
 76 timestamp.setMinutes(timestamp.getMinutes() + diffMinute);
 77 timestamp.setSeconds(timestamp.getSeconds() + diffSecond);
 78 return datetimeToStr(timestamp);
 79 }
 80 public static String getCurrentTime()
 81 {
 82 String s = (new Time(System.currentTimeMillis())).toString();
 83 return s;
 84 }
 85 public static String getCurrentDate()
 86 {
 87 String s = (new java.sql.Date(System.currentTimeMillis())).toString();
 88 return s;
 89 }
 90 public static String getCurrentNow()
 91 {
 92 String s = getCurrentDate() + " " + getCurrentTime();
 93 return s;
 94 }
 95 public static String dateFromStr(String date)
 96 {
 97 if (date == null || date.length() < 10)
 98 return getCurrentDate();
 99 else
100 return date.substring(010);
101 }
102 public static String timeFromStr(String date)
103 {
104 if (date == null || date.length() < 19)
105 return "00:00:00";
106 else
107 return date.substring(1119);
108 }
109 public static void main(String args[])
110 {
111 System.out.println(now());
112 }
113 }

5
1
分享到:
评论
2 楼 sc_friday 2012-04-10  
这小子把SimipleDateFormat 放在方法里面,所以不会存在多线程的问题
不过这小子挺厉害的,能相处字符长度的判断 ,赞一个
1 楼 honor571 2012-04-08  
SimpleDateFormat 不是线程安全的
多线程调用需要增加同步锁 否则会出问题的

相关推荐

    JAVA新手学习教程--ch1

    Java编程语言是软件开发领域广泛使用的工具,尤其适合构建企业级应用、移动应用以及服务器端逻辑。本教程“JAVA新手学习教程--ch1”旨在帮助初学者迈入Java的世界,第一章通常会涵盖基础概念和环境搭建。 在Java的...

    想学java,新手学java,怎样才能学好java,java视频教程,零基础学习java--java学习指导文档.doc

    - **并发工具类**:如 ExecutorService、Semaphore 等。 - **线程安全问题**:避免共享可变状态导致的问题。 ##### 3. Java I/O 编程 - **文件读写**:FileInputStream、FileOutputStream。 - **缓冲流**:...

    《新手学Java 7编程(第5版)》扫描版[PDF]

    根据提供的文件信息,我们可以推断出这是一本关于Java 7编程的学习资料——《新手学Java 7编程(第5版)》。虽然提供的具体内容部分非常有限,但从书名、描述及标签中,我们可以总结出一些重要的Java 7编程相关的...

    最适合新手学习的java教程

    1. Java语言简介:介绍Java的历史、特性和重要性。 2. 基本数据类型和数组:学习Java中的基本数据类型(如整型、浮点型、字符型和布尔型)以及如何使用数组存储和操作数据。 3. 运算符、表达式和语句:掌握各种...

    最适合初学java--java学习资料PDF格式

    10. **Java标准库**:Java标准库(Java API)包含大量预先定义好的类和接口,如用于数学运算的Math类,日期时间处理的Calendar类,XML解析的DOM和SAX库等。 11. **JDBC(Java Database Connectivity)**:Java通过...

    java开发常用工具类大全,程序员必备工具

    这些工具类集合旨在覆盖开发过程中的各种常见需求,尤其对于Java新手来说,它们可以降低学习曲线,提高开发效率。在实际项目中,根据具体需求选择合适的工具类进行集成,能够快速实现功能,同时保持代码的整洁和可...

    java源码包---java 源码 大量 实例

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...

    JAVA基础-初识JAVA

    Java的基础知识包括语法、类、对象、接口、包、异常处理、输入/输出流等,对于初学者来说,理解和掌握这些概念至关重要。 1. **Java语法**:Java的语法与C++类似,但更简洁。它包含变量声明、数据类型(如整型、...

    aip-java-sdk-4.2.0.zip_aip-java_aip-java-sdk_aip-java-sdk 4.2.0_

    综上所述,这个压缩包包含了一个用于与AIP接口交互的Java SDK,版本为4.2.0,同时提供了日志记录工具Log4j和JSON处理库,适合Java开发者,尤其是初学者,用于学习和开发基于AIP的服务。使用者可以通过这个SDK轻松地...

    java新手学习手册

    ### Java新手学习手册知识点梳理 #### 一、Java基础概念 - **面向对象特性**: - Java是一种完全面向对象的编程语言,强调一切皆对象。这意味着所有的数据和功能都需要封装在类中,不可直接在类之外定义独立的...

    java入门之Java2-3-4

    本教程“Java入门之Java2-3-4”是针对初学者精心设计的,旨在帮助新手快速掌握Java的基础知识和核心概念。 首先,我们来探讨Java2的部分,这是Java的一个重要阶段,它包含了Java Standard Edition(Java SE)的第二...

    java开发-ppt

    第二十一至二十五章可能包括网络编程、数据库连接(JDBC)和Java Swing或JavaFX(用于创建桌面应用程序的GUI工具包)。这些章节将让你了解如何利用Java进行网络通信和构建用户界面,扩展了Java开发的领域。 每章的...

    JAVA类查找工具

    JAVA类查找工具是一款专为Java开发者设计的实用软件,它能帮助用户快速定位并查找Java类,无论是存在于JAR文件还是ZIP文件中。这个工具极大地方便了开发过程中的代码管理和调试,尤其当项目庞大,类库众多时,它的...

    java-8-openjdk-amd64

    在Linux环境下,Java 8 OpenJDK AMD64 的安装和使用对于开发者来说至关重要,因为Java是许多服务器端应用、Web应用和大数据处理工具的基础。OpenJDK 8提供了Java SE(标准版)8的所有功能,包括Lambda表达式、Stream...

    java新手学习

    - **异常处理**:Java提供了异常处理机制,帮助开发者捕获和处理程序运行时可能出现的错误。 - **集合框架**:包括ArrayList、LinkedList、HashMap等,是存储和操作数据的重要工具。 - **输入/输出**:Java的IO流库...

    新手零基础学习java

    ### 新手零基础学习Java知识点概述 对于新手而言,零基础入门Java可能是一个充满挑战的过程。但是通过系统的学习路径和合适的学习资源,可以逐步掌握这门语言的核心概念和技术要点。以下将详细介绍Java的基础知识、...

    java学习路线1

    【Java学习路线1】是一条全面且最新的Java学习路径,旨在帮助从新手到专业人士的全程进阶。这个路线特别适合那些希望全面学习Java或者迅速准备求职的人,他们可以根据路线中的符号自定义学习路径。 路线特点: 1. *...

    java新手必备-java核心技术卷电子版

    书中的内容将帮助读者理解线程同步、死锁以及并发工具类(如Semaphore、CountDownLatch)的使用。 6. **I/O与NIO**:Java的I/O流系统是处理输入输出的重要部分,而NIO(New Input/Output)提供了一种更高效的数据...

Global site tag (gtag.js) - Google Analytics