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:

  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Locale;
  5. import java.util.TimeZone;
  6.  
  7. public class Main {
  8.  
  9. public static void main(String[] args) {
  10. Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  11. // FAQ :
  12. // 1.不同地区国家时间格式显示和同步问题? UTC,格林威治?夏威夷?国际化 ~ locale
  13. // 2.本地client和服务器时间同步问题,比如定时下发执行任务,本地预定时早于服务器当前时间,则无法执行
  14. System.out.println("\nTimezone: " + TimeZone.getDefault());
  15.  
  16. long time = calendar.getTimeInMillis();
  17. Date date1 = calendar.getTime();
  18. Date date2 = new Date(); // get current date
  19.  
  20. // method1: direct format fun call
  21. // a ~ AM/PM, 上午/下午
  22. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // HH ~ 24小时制
  23. System.out.printf("\nTime1 in 24h : " + sdf1.format(calendar.getTime()));
  24.  
  25. SimpleDateFormat sdf11 = new SimpleDateFormat("yyyy-MM-dd hh:mm"); // hh ~ 12小时制
  26. System.out.printf("\nTime11 in 12h : " + sdf11.format(calendar.getTime()));
  27.  
  28. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd a HH:mm", Locale.ENGLISH);
  29. System.out.printf("\nTime2: " + sdf2.format(calendar.getTime()));
  30.  
  31. SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日HH:mm");
  32. System.out.printf("\nTime3: " + sdf3.format(calendar.getTime()));
  33.  
  34. SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 a HH:mm");
  35. System.out.printf("\nTime4: " + sdf4.format(calendar.getTime()));
  36.  
  37. // method2: use self define format func
  38. int year = calendar.get(Calendar.YEAR);
  39. int month = calendar.get(Calendar.MONTH);
  40. int day = calendar.get(Calendar.DAY_OF_MONTH);
  41. int hour = calendar.get(Calendar.HOUR_OF_DAY);
  42. int minute = calendar.get(Calendar.MINUTE);
  43. int second = calendar.get(Calendar.SECOND);
  44.  
  45. // 欧美国家一周的第一天是星期天,这在java api代码中是写死的,因此这里要自己手动做下判断
  46. // Calendar中的星期一、二、三、四、五、六、日、DAY_OF_WEEK等都是以一个常量的形式存在的,
  47. // 我们设置setFirstDayOfWeek()并不能改变这些常量的值
  48. int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 获取当天是星期几
  49. boolean isFirstSunday = (calendar.getFirstDayOfWeek() == Calendar.SUNDAY);
  50. if (isFirstSunday) {
  51. dayOfWeek -= 1;
  52. if (dayOfWeek == 0) {
  53. dayOfWeek = 7;
  54. }
  55. }
  56.  
  57. int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); // 某月中第几周. 按这个月1号算,1号起就是第1周,8号起就是第2周
  58. int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); // 该月的第几周
  59. int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); // 一年的第几天,从1号算起
  60. System.out.println("\n" + getFormattedTime(year, month, day, hour, minute));
  61. System.out.println("\ndayOfWeek: " + dayOfWeek + "\ndayOfWeekInMonth: " + dayOfWeekInMonth
  62. + "\ndayOfYear: " + dayOfYear);
  63. }
  64.  
  65. /**
  66. * 格式化日期字符串,形如 xx年xx月xx日xx:xx:xx
  67. * @param year
  68. * @param month
  69. * @param day
  70. * @param hour
  71. * @param minute
  72. * @return String
  73. */
  74. public static String getFormattedTime(int year, int month, int day, int hour, int minute) {
  75. String yearStr = "";
  76. String monthStr = "";
  77. String dayStr = "";
  78. String hourStr = "";
  79. String minuteStr = "";
  80. // year
  81. if (year < 10) {
  82. yearStr = "0" + year;
  83. } else {
  84. yearStr = String.valueOf(year);
  85. }
  86. // month
  87. if (month < 10) {
  88. monthStr = "0" + month;
  89. } else {
  90. monthStr = Integer.toString(month);
  91. }
  92. // day
  93. if (day < 10) {
  94. dayStr = "0" + day;
  95. } else {
  96. dayStr = Integer.toString(day);
  97. }
  98. // hour
  99. if (hour < 10) {
  100. hourStr = "0" + hour;
  101. } else {
  102. hourStr = Integer.toString(hour);
  103. }
  104. // minute
  105. if (minute < 10) {
  106. minuteStr = "0" + minute;
  107. } else {
  108. minuteStr = Integer.toString(minute);
  109. }
  110. return yearStr + "年" + monthStr + "月" + dayStr + "日" + hourStr + ":" + minuteStr;
  111. }
  112. }

Java 日期时间获取和显示的更多相关文章

  1. Java 日期时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...

  2. Java日期时间使用(转)

    Java日期时间使用总结 转自:http://lavasoft.blog.51cto.com/62575/52975/   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个 ...

  3. Java日期时间使用总结[转载]

    Java日期时间使用总结   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...

  4. Java-Runoob:Java 日期时间

    ylbtech-Java-Runoob:Java 日期时间 1.返回顶部 1. Java 日期时间 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实 ...

  5. Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

    通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneI ...

  6. 一文告诉你Java日期时间API到底有多烂

    前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...

  7. Java日期时间处理

    Java 日期时间处理 一.时间相关类 java.lang.System java.util.Date java.util.Calendar java.util.GregorianCalendar j ...

  8. Java日期时间,以及相互转换

    Java日期时间,以及相互转化 package com.study.string; import java.text.ParseException; import java.text.SimpleDa ...

  9. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

随机推荐

  1. Vue---父子组件之间的通信

    在vue组件通信中其中最常见通信方式就是父子组件之中的通信,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使用,遇到业务逻辑操作时子组 ...

  2. pgm5

    这部分讨论 inference 里面基本的问题,即计算 这类 query,这一般可以认为等价于计算 ,因为我们只需要重新 normalize 一下关于 的分布就得到了需要的值,特别是像 MAP 这类 ...

  3. 用宏实现C/C++从非零整数开始的数组

    相信大家在刚学习C/C++时,都会对数组下标从0开始编号有疑惑.尽管我是喜欢从0开始编号的“0党”,但是也有很多的人是喜欢从1开始编号. 意识到C/C++数组与指针具有一定的相似性后,我开始构思如何仿 ...

  4. 【题解】 [HNOI2004]宠物收养场(Splay)

    懒得复制,戳我戳我 Solution: \(Splay\)板子,注意交换的地方,然后就是注意不要越界node[x],应该是\(node[now]\),其次就是数组可以开大点 Code: //It is ...

  5. diyiti.cpp

    diyiti.cpp/c/pas diyiti.in diyiti.out 2s/256MB 给定两个01串,S,T(下标从0开始). 支持如下3种操作: 1. 修改S第i位的字符,即0->1, ...

  6. bzoj4542: [Hnoi2016]大数(莫队)

    这题...离散化...$N$和$n$搞错了...查了$2h$...QAQ 考虑$s[l...r]$,可以由两个后缀$suf[l]-suf[r+1]$得到$s[l...r]$代表的数乘$10^k$得到的 ...

  7. [JSOI2008]魔兽地图

    Description DotR里面的英雄只有一个属性——力量. 他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装备的力量值之 ...

  8. Hadoop生态圈-kafka事务控制以及性能测试

    Hadoop生态圈-kafka事务控制以及性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  9. 鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理

    视频链接:http://www.bilibili.com/video/av10669732/ 1. Linux 的账号与群组1.1 使用者识别: UID 与 GID1.2 使用者账号:/etc/pas ...

  10. vue-router基本概念及使用

    index.html: <!DOCTYPE html> <html> <head> <title></title> <meta cha ...