Java 如何基于DateFormat.SHORT和区域设置显示日期对象的时间?
我正在使用Java7,需要显示JavaJava 如何基于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
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 TimeDateTime
对象。与日期
不同,日期时间
了解其指定的时区。我们希望从日期
对象的区域调整到所需的区域,例如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 TimeDateTime
对象。与日期
不同,日期时间
了解其指定的时区。我们希望从日期
对象的区域调整到所需的区域,例如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 ) ;