我们可以得到给定日期对象的模式

时间:2012-11-14 07:25:25

标签: java simpledateformat

如何获取给定pattern对象的date

我在我的方法中得到一个Date对象作为参数,我想知道将其转换为用户选择的时区的日期模式。

3 个答案:

答案 0 :(得分:2)

您误解了Date的含义。自Unix时代以来,它只是 几毫秒。它具有时区,日历或文本格式的无概念。如果它有帮助,可以认为它有点像int - int不是十六进制,十进制或二进制 - 它只是一定范围内的数字。如果你解析" 1a"作为十六进制,它提供了一个难以区分的结果解析" 26"作为小数。 Date也是如此。

当然,在某种程度上已在评论中对此进行了解释,但您的回复是:

  

好的,但是当我得到已设置格式的日期对象时,我想知道该格式。

......暗示你并没有真正理解它。 "的概念已经设定了格式"在Date

的背景下没有任何意义

如果您需要应用特定格式,则应同时传递DateFormat以及Date

答案 1 :(得分:0)

您不能从日期对象本身(根据您的具体要求)使用

DateFormat.getDateTimeInstance()

这将返回给您的语言环境的默认样式和格式,但是我说这取决于您的要求......

另一种方法是更改​​您的方法签名以接受格式。

答案 2 :(得分:0)

您应该创建DateFormatDate对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));