如何获取给定pattern
对象的date
我在我的方法中得到一个Date
对象作为参数,我想知道将其转换为用户选择的时区的日期模式。
答案 0 :(得分:2)
您误解了Date
的含义。自Unix时代以来,它只是 几毫秒。它具有时区,日历或文本格式的无概念。如果它有帮助,可以认为它有点像int
- int
不是十六进制,十进制或二进制 - 它只是一定范围内的数字。如果你解析" 1a"作为十六进制,它提供了一个难以区分的结果解析" 26"作为小数。 Date
也是如此。
当然,在某种程度上已在评论中对此进行了解释,但您的回复是:
好的,但是当我得到已设置格式的日期对象时,我想知道该格式。
......暗示你并没有真正理解它。 "的概念已经设定了格式"在Date
。
如果您需要应用特定格式,则应同时传递DateFormat
以及Date
。
答案 1 :(得分:0)
您不能从日期对象本身(根据您的具体要求)使用
DateFormat.getDateTimeInstance()
这将返回给您的语言环境的默认样式和格式,但是我说这取决于您的要求......
另一种方法是更改您的方法签名以接受格式。
答案 2 :(得分:0)
您应该创建DateFormat
。 Date
对TimeZone一无所知。
Date date = new Date();
DateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
// Set TimeZone
formatter.setTimeZone(TimeZone.getTimeZone("EST"));
System.out.println(formatter.format(date));
// Change timezone
formatter.setTimeZone(TimeZone.getTimeZone("IST"));
System.out.println(formatter.format(date));