Java 常用类库 之 Calandar 日期处理类

简介:

http://www.verejava.com/?id=16993050424091

/**
    知识点:Calandar 日期处理类
*/
import java.util.Calendar;
import java.util.GregorianCalendar;

public class TestCalendar {
    
    public static void main(String[] args) {
        //实例化 Calandar 对象
        Calendar c = new GregorianCalendar();
        //输出年,月,日,时,分,秒
        System.out.println(c.get(Calendar.YEAR));
        //注意:Gregorian日历1月从 0 开始所以要加1
        System.out.println(c.get(Calendar.MONTH) + 1);
        System.out.println(c.get(Calendar.DATE));
        System.out.println(c.get(Calendar.HOUR));
        System.out.println(c.get(Calendar.MINUTE));
        System.out.println(c.get(Calendar.SECOND));
        System.out.println(c.get(Calendar.MILLISECOND));

        //获得当前日期
        System.out.println(DateTime.getDate());
        //获得当前日期时间
        System.out.println(DateTime.getDateTime());
        //获得当前日期时间戳
        System.out.println(DateTime.getTimeStamp());
    }
}

/**
    日期类的封装
        1. 取得当前日期
        2. 取得当前日期时间
        3. 取得当前时间戳
*/
class DateTime {
    
    //取得当前日期
    public static String getDate() {
        Calendar c = new GregorianCalendar();
        StringBuffer buffer = new StringBuffer();
        buffer.append(c.get(Calendar.YEAR)).append("-");
        buffer.append(addZero(c.get(Calendar.MONTH) + 1)).append("-");
        buffer.append(addZero(c.get(Calendar.DATE)));
        return buffer.toString();
    }

    //取得当前日期时间
    public static String getDateTime() {
        Calendar c = new GregorianCalendar();
        StringBuffer buffer = new StringBuffer();
        buffer.append(c.get(Calendar.YEAR)).append("-");
        buffer.append(addZero(c.get(Calendar.MONTH) + 1)).append("-");
        buffer.append(addZero(c.get(Calendar.DATE))).append(" ");
        buffer.append(addZero(c.get(Calendar.HOUR))).append(":");
        buffer.append(addZero(c.get(Calendar.MINUTE))).append(":");
        buffer.append(addZero(c.get(Calendar.SECOND)));
        return buffer.toString();
    }

    //获取当前时间戳
    public static long getTimeStamp() {
        Calendar c = new GregorianCalendar();
        return c.getTime().getTime();
    }

    //如果月,日,时,分,秒小于 10 在前面添加0
    public static String addZero(int value) {
        String str = Integer.toString(value);
        if (str.length() < 2)
            return 0 + str;
        return str;
    }

}

http://www.verejava.com/?id=16993050424091

目录
相关文章
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
168 57
|
12天前
|
Java API 调度
Java 日期与时间处理:精准掌控时间流转
Java 8引入了全新的日期和时间API,解决了旧版`java.util.Date`和`Calendar`类设计不佳、操作繁琐的问题。新API包括`LocalDate`、`LocalTime`和`LocalDateTime`类,操作简洁直观,符合日常思维习惯。同时提供了`Period`和`Duration`处理时间间隔,以及`DateTimeFormatter`进行格式化输出。这些改进使开发者能更高效、准确地处理日期和时间,极大提升了开发效率与代码质量。 (239字符)
46 5
|
23天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
65 26
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
71 8
|
2月前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
44 5
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
Java Android开发
Eclipse 创建 Java 类
Eclipse 创建 Java 类
32 0
|
10天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
56 17
|
21天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者