Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何基于DateFormat.SHORT和区域设置显示日期对象的时间?_Java_Date_Java 7 - Fatal编程技术网

Java 如何基于DateFormat.SHORT和区域设置显示日期对象的时间?

Java 如何基于DateFormat.SHORT和区域设置显示日期对象的时间?,java,date,java-7,Java,Date,Java 7,我正在使用Java7,需要显示JavaDate对象的时间部分 我注意到,DateFormat具有SHORT常量,并且页面具有以下描述: SHORT是完全数字的,例如12.13.52或下午3:30 我的问题是如何仅显示时间部分(例如“3:30pm”)。以下是我所拥有的,它只显示了日期部分(如2015年2月14日): 如果要显示的是时间部分,则需要调用的是getTimeInstance(),而不是getDateInstance() 这是一种答案,你应该学会自己寻找,只需阅读: 使用getDateIn

我正在使用Java7,需要显示Java
Date
对象的时间部分

我注意到,
DateFormat
具有
SHORT
常量,并且页面具有以下描述:

SHORT
是完全数字的,例如12.13.52或下午3:30

我的问题是如何仅显示时间部分(例如“3:30pm”)。以下是我所拥有的,它只显示了日期部分(如2015年2月14日):


如果要显示的是时间部分,则需要调用的是
getTimeInstance()
,而不是
getDateInstance()

这是一种答案,你应该学会自己寻找,只需阅读:

使用getDateInstance获取该国家/地区的常规日期格式。还有其他静态工厂方法可用。使用getTimeInstance获取该国家/地区的时间格式。使用getDateTimeInstance获取日期和时间格式


如果要显示的是时间部分,则需要调用的是
getTimeInstance()
,而不是
getDateInstance()

这是一种答案,你应该学会自己寻找,只需阅读:

使用getDateInstance获取该国家/地区的常规日期格式。还有其他静态工厂方法可用。使用getTimeInstance获取该国家/地区的时间格式。使用getDateTimeInstance获取日期和时间格式


因此,如果您想显示时间部分,您可以做的是提供SimpleDataFormat格式和您的区域设置,如下所示
SimpleDateFormat sf=新的SimpleDateFormat(“hh:mm a”,您的语言环境)
并像您那样格式化它
sd.format(newdate())
如果您想格式化更多内容,您可以添加更多内容,如
“YY.MM.dd hh:MM a”


您可以阅读SimpleDataFormat文档以了解更多信息,因此如果您想显示时间部分,您可以做的是向SimpleDataFormat和您的区域设置提供格式,如下所示
SimpleDateFormat sf=新的SimpleDateFormat(“hh:mm a”,您的语言环境)
并像您那样格式化它
sd.format(newdate())
如果您想格式化更多内容,您可以添加更多内容,如
“YY.MM.dd hh:MM a”


您可以阅读SimpleDateFormat文档以了解更多信息

使用
getTimeInstance
而不是
getDateInstance

DateFormat f = DateFormat.getTimeInstance(DateFormat.SHORT,Locale.getDefault());

使用
getTimeInstance
而不是
getDateInstance

DateFormat f = DateFormat.getTimeInstance(DateFormat.SHORT,Locale.getDefault());
时区 这个问题和其他答案忽略了时区这一关键问题。如果未指定,则自动应用JVM的当前默认时区

乔达时间 使用Joda Time library,这样的工作更容易

使用Joda Time 2.7的示例

将java.util.Date对象转换为Joda Time
DateTime
对象。与
日期
不同,
日期时间
了解其指定的时区。我们希望从
日期
对象的区域调整到所需的区域,例如Montréal

DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ) ;
DateTime dateTime = new DateTime( yourDate, zone ) ;
生成此日期时间值的字符串表示形式。传递给
forStyle
的一对字符控制日期部分和时间部分的完整、长、短等格式。连字符不显示该部分

DateTimeFormatter formatter = DateTimeFormat.forStyle( "-S" ).withLocale( Locale.CANADA_FRENCH ) ;
String output = formatter.print( dateTime ) ;
时区 这个问题和其他答案忽略了时区这一关键问题。如果未指定,则自动应用JVM的当前默认时区

乔达时间 使用Joda Time library,这样的工作更容易

使用Joda Time 2.7的示例

将java.util.Date对象转换为Joda Time
DateTime
对象。与
日期
不同,
日期时间
了解其指定的时区。我们希望从
日期
对象的区域调整到所需的区域,例如Montréal

DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ) ;
DateTime dateTime = new DateTime( yourDate, zone ) ;
生成此日期时间值的字符串表示形式。传递给
forStyle
的一对字符控制日期部分和时间部分的完整、长、短等格式。连字符不显示该部分

DateTimeFormatter formatter = DateTimeFormat.forStyle( "-S" ).withLocale( Locale.CANADA_FRENCH ) ;
String output = formatter.print( dateTime ) ;