文档章节

Java 日期时间获取和显示

o
 osc_z1hvg4cu
发布于 2018/04/24 01:24
字数 643
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Java正确获取星期Calendar.DAY_OF_WEEK
http://chamcon.iteye.com/blog/2144433

Java SimpleDateFormat 中英文时间格式化转换

https://blog.csdn.net/KingWTD/article/details/48089111

java-使用SimpleDateFormat格式化日期
http://zy-email1991.iteye.com/blog/2243021

编写一个java程序用以将AM/PM格式的时间转换为24小时格式
https://zhidao.baidu.com/question/1798461878119559747.html?qbl=relate_question_1&word=java%20am%20pm%20%D3%A2%CE%C4

 

个人写的一个Demo:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

public class Main {

    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
        // FAQ :
        // 1.不同地区国家时间格式显示和同步问题? UTC,格林威治?夏威夷?国际化 ~ locale
        // 2.本地client和服务器时间同步问题,比如定时下发执行任务,本地预定时早于服务器当前时间,则无法执行
        System.out.println("\nTimezone: " + TimeZone.getDefault());
        
        long time = calendar.getTimeInMillis();
        Date date1 = calendar.getTime();
        Date date2 = new Date(); // get current date
        
        // method1: direct format fun call
//        a ~ AM/PM, 上午/下午
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // HH ~ 24小时制
        System.out.printf("\nTime1 in 24h : " + sdf1.format(calendar.getTime()));

        SimpleDateFormat sdf11 = new SimpleDateFormat("yyyy-MM-dd hh:mm"); // hh ~ 12小时制
        System.out.printf("\nTime11 in 12h : " + sdf11.format(calendar.getTime()));
        
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd a HH:mm", Locale.ENGLISH);
        System.out.printf("\nTime2: " + sdf2.format(calendar.getTime()));
        
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日HH:mm");
        System.out.printf("\nTime3: " + sdf3.format(calendar.getTime()));
        
        SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 a HH:mm");
        System.out.printf("\nTime4: " + sdf4.format(calendar.getTime()));

        // method2: use self define format func
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);

        // 欧美国家一周的第一天是星期天,这在java api代码中是写死的,因此这里要自己手动做下判断
        // Calendar中的星期一、二、三、四、五、六、日、DAY_OF_WEEK等都是以一个常量的形式存在的,
        // 我们设置setFirstDayOfWeek()并不能改变这些常量的值
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 获取当天是星期几
        boolean isFirstSunday = (calendar.getFirstDayOfWeek() == Calendar.SUNDAY);
        if (isFirstSunday) {
            dayOfWeek -= 1;
            if (dayOfWeek == 0) {
                dayOfWeek = 7;
            }
        }

        int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); // 某月中第几周. 按这个月1号算,1号起就是第1周,8号起就是第2周
        int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); // 该月的第几周
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); // 一年的第几天,从1号算起
        System.out.println("\n" + getFormattedTime(year, month, day, hour, minute));
        System.out.println("\ndayOfWeek: " + dayOfWeek + "\ndayOfWeekInMonth: " + dayOfWeekInMonth 
                + "\ndayOfYear: " + dayOfYear);
    }

    /**
     * 格式化日期字符串,形如 xx年xx月xx日xx:xx:xx
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @return String
     */
    public static String getFormattedTime(int year, int month, int day, int hour, int minute) {
        String yearStr = "";
        String monthStr = "";
        String dayStr = "";
        String hourStr = "";
        String minuteStr = "";
        // year
        if (year < 10) {
            yearStr = "0" + year;
        } else {
            yearStr = String.valueOf(year);
        }
        // month
        if (month < 10) {
            monthStr = "0" + month;
        } else {
            monthStr = Integer.toString(month);
        }
        // day
        if (day < 10) {
            dayStr = "0" + day;
        } else {
            dayStr = Integer.toString(day);
        }
        // hour
        if (hour < 10) {
            hourStr = "0" + hour;
        } else {
            hourStr = Integer.toString(hour);
        }
        // minute
        if (minute < 10) {
            minuteStr = "0" + minute;
        } else {
            minuteStr = Integer.toString(minute);
        }
        return yearStr + "年" + monthStr + "月" + dayStr + "日" + hourStr + ":" + minuteStr;
    }
}

 

 

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
java8日期处理

示例1:Java 8中获取今天的日期 示例2:Java 8中获取年、月、日信息 示例3:Java 8中处理特定日期 示例4:Java 8中判断两个日期是否相等 示例5:Java 8中检查像生日这种周期性事件 示例6:Java 8中...

osc_qn1pixe7
02/29
3
0
Java8 处理日期和时间

目录 1、获取今天的日期 2、在Java 8 中获取年、月、日信息 3、在Java 8 中处理特定日期 4、在Java 8 中判断两个日期是否相等 5、在 Java 8 中检查像生日这种周期性事件 6、在 Java 8 中获取...

王雅静-Cathy
04/01
0
0
java8中处理日期和时间

Java 8 中如何处理日期和时间 1. 在 Java 8 中获取今天的日期 Java 8 中的 LocalDate 用于表示当天日期。和 java.util.Date 不同,它只有日期,不包含时间。当你仅需要表示日期时就用这个类。...

yushiwh
2019/08/13
0
0
Java8:18个日期处理的实践

Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。 Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及Simpl...

osc_qn1pixe7
02/16
3
0
18个Java8日期处理的实践,太有用了

Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。 Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及Simpl...

osc_ug2wy0bi
02/06
5
0

没有更多内容

加载失败,请刷新页面

加载更多

设计模式(4) 建造者模式

什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了...

zhixin9001
34分钟前
14
0
ArrayList源码分析 —— JDK8

ArrayList的特性 ArrayList内部使用数据作为存储结构,ArrayList可以理解为数组的扩展对象,封装了常用的和非常用的操作数组的方法。以及当数组长度不足以保存数组时,自动扩容数组,通常Arr...

XuePeng77
40分钟前
40
0
__slots__的用法? - Usage of __slots__?

问题: Python中__slots__的目的是什么-尤其是关于何时以及何时不使用它的目的? 解决方案: 参考一: https://stackoom.com/question/1ymu/slots-的用法 参考二: https://oldbug.net/q/1ym...

富含淀粉
51分钟前
17
0
Python分析42年高考数据,告诉你高考为什么这么难?

作者:徐麟 历年录取率 可能很多经历过高考的人都不知道高考的全称,高考实际上是普通高等学校招生全国统一考试的简称。从1977年国家恢复高考制度至今,高考经历了许多的改革,其中最为显著的...

爱码小哥
53分钟前
27
0
CKEditor 5 + SpringBoot实战(四):SpringBoot 实现文件上传

在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,...

树下魅狐
55分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部