Java中输出当前时间的各种方法

2023-05-16

import java.text.*;
import java.util.*;

class Example {
    public static void main(String args[]) {
        TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));//定义时区,可以避免虚拟机时间与系统时间不一致的问题
        
        System.out.println(new Date(System.currentTimeMillis()));//方法一:默认方式输出现在时间
       
        Date nowTime = new Date();
        System.out.println(nowTime);//方法二:Date方式,输出现在时间

        SimpleDateFormat matter = new SimpleDateFormat(
                "现在时间:yyyy年MM月dd日E HH时mm分ss秒");
        System.out.println(matter.format(nowTime));//方法三:SimpleDateFormat方式,完整输出现在时间
   
    }
}

jvm时间和系统时间不一致,大体可能是一下几种情况:
①现象:相差时间整数小时,但不超过24小时。原因:jvm设置的时区不正确,或者启用了夏时令(IBM产品),具体在那里设置需要看使用的是什么APL服务器。
②现象:相差非整数小时。某种条件下,JVM中读取系统时间的时候,是在应用程序启动之后,读一次OS的系统时间,然后JVM中根据CPU ticks来自己计算时间,而不是实时地去OS 取系统时间。这样的话,在应用程序运行当中,如果改变了OS的系统时间,那么JVM和OS的系统时间就不一致了。

③第三种及其少见,以至于都忘了,就记得是一个bug,在某种情况下,会轻微延迟jvm时间,但是积累多了,也很明显。

package com.grace.test;  
  
import java.text.DateFormat;  
import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  
  
public class showDate {  
    public static void main(String[] args) throws ParseException {  
  
        Date d = new Date();  
        String s = null;  
  
        /** 输出格式: Mon May 05 15:23:58 CST 2014 */  
        System.out.println(d);  
  
        /** 输出格式: 2014-5-5 */  
        s = DateFormat.getDateInstance().format(d);  
        System.out.println(s);  
  
        /** 输出格式: 2014-5-5 */  
        s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);  
        System.out.println(s);  
  
        /** 输出格式: 2014年5月5日 星期一 */  
        s = DateFormat.getDateInstance(DateFormat.FULL).format(d);  
        System.out.println(s);  
  
        /** 输出格式: 2014-5-5 */  
        s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);  
        System.out.println(s);  
  
        /** 输出格式: 14-5-5 */  
        s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);  
        System.out.println(s);  
  
        /** 输出格式: 2014-5-05 00:00:00 大写H为24小时制 */  
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        s = sdf.format(d);  
        System.out.println(s);  
  
        /** 输出格式: 2014-5-05 00:00:00 小写h为12小时制 */  
        DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
        s = sdf2.format(d);  
        System.out.println(s);  
  
        /** 输出格式: 20140505000000 */  
        DateFormat sdf3 = new SimpleDateFormat("yyyyMMddHHmmss");  
        s = sdf3.format(d);  
        System.out.println(s);  
  
        /** 字符串转换城日期格式 */  
        s = sdf.format(d);  
        Date today = sdf.parse(s);  
        System.out.println("字符串转成日期1:" + today);  
        System.out.println("字符串转成日期2:" + sdf.format(today));  
  
        /** 单独输出年月日时分秒等 */  
        Calendar c = Calendar.getInstance();  
        System.out.println("年: " + c.get(Calendar.YEAR));  
        // 月份从0开始,加1校正  
        System.out.println("月: " + (c.get(Calendar.MONTH) + 1) + "");  
        System.out.println("日: " + c.get(Calendar.DAY_OF_MONTH));  
        System.out.println("时: " + c.get(Calendar.HOUR_OF_DAY));  
        System.out.println("分: " + c.get(Calendar.MINUTE));  
        System.out.println("秒: " + c.get(Calendar.SECOND));  
        System.out.println("当前时间毫秒数:" + c.getTimeInMillis());  
        System.out.println("当前时间: " + c.getTime());  
    }  
}  


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中输出当前时间的各种方法 的相关文章

  • 在java Swing中创建带有递增和递减按钮的数字文本框

    如何在 java swing 中创建一个数字文本框 它有两个按钮 向上和向下 分别递增和递减文本框中的值 此文本框也必须可编辑仅数字值 像这样的东西 我尝试在文本框附近放置两个按钮 然后在单击按钮时手动执行操作 有没有其他方法可以更好地做到
  • CopyOnWriteArraySet.add 和 remove 的重写等于

    我有像下面这样的课程 class A Override public boolean equals Object other return true Class B extends A Class C extends A Override
  • AbstractCollection 的 toArray 方法的实现中的代码有什么用

    public Object toArray Estimate size of array be prepared to see more or fewer elements Object r new Object size Iterator
  • 是否可以使用检测重新定义核心 JDK 类?

    我想重新定义字节码StackOverflowError构造函数 因此当堆栈溢出发生时我有一个 钩子 我想要做的就是在构造函数的开头插入对我选择的静态方法的单个方法调用 是否有可能做到这一点 您应该能够使用两种方法之一来完成此操作 除非在过去
  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • 在 Eclipse 中跨文件搜索注释掉的代码

    有没有一种快速方法可以在 Eclipse 中查找 Java 文件中所有注释掉的代码 也许是搜索中的任何选项 或者任何可以执行此操作的附加组件 它应该只能找到被注释掉的代码 而不是普通的注释 在 Eclipse 中 我只是在打开正则表达式复选
  • Spring Rest POST Json RequestBody 不支持内容类型

    当我尝试使用 post 方法发布新对象时 RequestBody 无法识别 contentType Spring 已经配置完毕 POST 可以与其他对象一起使用 但不能与这个特定对象一起使用 org springframework web
  • Infinispan 复制缓存不复制对象以供读取

    我们正在尝试在 Openshift 内的 Wildfly 11 上运行的两个 infinispan 节点上安装复制缓存 当我们在一个节点上写入一个对象时 它不会显示在另一节点上进行读取 启动时 节点在集群中连接 并且可以看到彼此 如日志中所
  • 使用 spring security 找不到 AuthenticationProvider

    我一直在尝试使用 x509 证书通过 LDAP 对用户进行身份验证 但似乎无法正常工作 我声明了一个身份验证提供程序 但仍然抛出错误 提示没有提供程序 这是我的调试输出 INFO Initiating Jersey application
  • 寻找 WebElements,最佳实践

    在我们当前的自动化 使用 Selenium WebDriver Java 中 我们使用 FindBy very广泛地 例如 FindBy css a name bcrumb protected List
  • java“类文件包含错误的类”错误

    我正在尝试制作一个控制台应用程序来测试我的网络服务 我成功部署了一个网络服务http localhost 8080 WS myWS http localhost 8080 WS myWS我用 wsimport 制作了代理类 wsimport
  • 如何加快 jar 签名者的速度?

    我使用 ant 来签署我的 jars 以进行网络启动部署 Ant signjar 在 Web 启动签名时非常慢 如何加快签名过程 我找到了一种可能的解决方案 早些时候 在构建脚本 ant signjar 中 按顺序调用所有 jar 我们使用
  • Java中通过FTP创建文件夹层次结构

    Java 是否有现成的功能可以在远程 FTP 服务器上创建文件夹层次结构 Apache Commons 确实提供了 FTP 客户端 但我找不到创建目录层次结构的方法 它确实允许创建单个目录 makeDirectory 但创建整个路径似乎并不
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • 在同一台计算机上设置 JBoss 的多个实例

    我在 JBoss 社区中找到了下一页 http www jboss org community wiki ConfigurePorts http www jboss org community wiki ConfigurePorts 有下一
  • 在 HttpClient4 中使用 PoolingHttpClientConnectionManager 的正确方法出现问题 java.lang.IllegalStateException: 连接池关闭

    我正在 Java 中利用 HTTPclient4 发送 HTTP 请求并处理 HTTP 响应 我想使用连接池来提高性能 但我无法找到合适的方法来做到这一点 我正在 Java 中利用 HTTPclient4 发送 HTTP 请求并处理 HTT
  • Java 8 Stream - 为什么过滤器方法不执行? [复制]

    这个问题在这里已经有答案了 我正在学习使用java流进行过滤 但是过滤后的流没有打印任何内容 我认为过滤器方法没有被执行 我的过滤代码如下 Stream of d2 a2 b1 b3 c filter s gt s startsWith b
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • 错误:运算符不存在:整数 = 字符变化,使用 Postgres 8.2

    我有一个用旧版本的 Eclipse Ganymede 如果我没记错的话 开发的 Java EE Web 应用程序 我最近迁移到 Kubuntu 12 04 LTS 并将应用程序迁移到 Eclipse Kepler 我从 Eclipse 网站
  • 生成签名和加密的 JWT

    我正在尝试使用生成签名和加密的 JWT 令牌雨云智威汤逊 http connect2id com products nimbus jose jwt private void generateToken throws JOSEExceptio

随机推荐