java-在日期格式化后以小写形式显示AM和PM

格式化日期时间后,时间以大写形式显示AM或PM,但我希望以小写形式显示,例如am或pm。

这是我的代码:

public class Timeis {

public static void main(String s[]) {

long ts = 1022895271767L;

String st = null;

st = new SimpleDateFormat(" MMM d 'at' hh:mm a").format(ts);

System.out.println("time is " + ts);

}

}

7个解决方案

79 votes

这有效

public class Timeis {

public static void main(String s[]) {

long ts = 1022895271767L;

SimpleDateFormat sdf = new SimpleDateFormat(" MMM d 'at' hh:mm a");

// CREATE DateFormatSymbols WITH ALL SYMBOLS FROM (DEFAULT) Locale

DateFormatSymbols symbols = new DateFormatSymbols(Locale.getDefault());

// OVERRIDE SOME symbols WHILE RETAINING OTHERS

symbols.setAmPmStrings(new String[] { "am", "pm" });

sdf.setDateFormatSymbols(symbols);

String st = sdf.format(ts);

System.out.println("time is " + st);

}

}

James Jithin answered 2019-10-08T19:46:10Z

63 votes

不幸的是,标准格式设置方法不允许您这样做。 乔达也没有。 我认为您将必须通过简单的后格式替换来处理格式日期。

String str = oldstr.replace("AM", "am").replace("PM","pm");

您可以使用使用regepxs的replaceAll()方法,但是我认为以上方法就足够了。 我没有做toLowerCase(),因为如果将来更改格式字符串以包含(例如)月份名称或类似名称,可能会破坏格式。

编辑:James Jithin的解决方案看起来好得多,并且执行此操作的正确方法(如评论中所述)

Brian Agnew answered 2019-10-08T19:45:46Z

6 votes

试试这个:

System.out.println("time is " + ts.toLowerCase());

虽然您可以按照此处和此处的说明创建自定义格式

不幸的是,AM和PM似乎无法在标准SimpleDateFormat类中自定义

RNJ answered 2019-10-08T19:46:41Z

4 votes

如果您不想执行字符串替换,并且正在使用Java 8 DateTimeFormatter:

Map ampm = new HashMap<>();

ampm.put(0l, "am");

ampm.put(1l, "pm");

DateTimeFormatter dtf = new DateTimeFormatterBuilder()

.appendPattern("E M/d h:mm")

.appendText(ChronoField.AMPM_OF_DAY, ampm)

.toFormatter()

.withZone(ZoneId.of("America/Los_Angeles"));

必须手动构建DateTimeFormatter(指定单个片段),因为没有用于小写am / pm的图案符号。 您可以在之前和之后使用appendPattern。

我相信没有办法替代默认的am / pm符号,这是唯一的一种在最终字符串上进行字符串替换的方法。

Nikola Mihajlović answered 2019-10-08T19:47:20Z

3 votes

Calendar c = Calendar.getInstance();

System.out.println("Current time => " + c.getTime());

SimpleDateFormat df = new SimpleDateFormat("HH:mm a");

String formattedDate = df.format(c.getTime());

formattedDate = formattedDate.replace("a.m.", "AM").replace("p.m.","PM");

TextView textView = findViewById(R.id.textView);

textView.setText(formattedDate);

Mourya answered 2019-10-08T19:47:37Z

1 votes

如果您想要默认am,pm以外的其他样式,James的答案很好。 但是,恐怕您需要在Locale和特定于Locale的AM / PM集之间进行映射才能采用覆盖。 现在,您只需使用Java内置的java.util.Formatter类。 因此,一个简单的示例如下所示:

System.out.println(String.format(Locale.UK, "%1$tl%1$tp", LocalTime.now()));

它给:

9pm

注意,如果要大写,只需将“%1 $ tp”替换为“%1 $ Tp”。 您可以在[http://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#dt]中找到更多详细信息。

ShenYi answered 2019-10-08T19:48:11Z

0 votes

只需添加toUpperCase()这样

public class Timeis {

public static void main(String s[]) {

long ts = 1022895271767L;

String st = null;

st = new SimpleDateFormat(" MMM d 'at' hh:mm a").format(ts).toLowerCase();

System.out.println("time is " + ts);

}

}

和toUpperCase()(如果要大写)

3zcs answered 2019-10-08T19:48:42Z

java am pm_java-在日期格式化后以小写形式显示AM和PM相关推荐

  1. JAVA日期格式化类

    JAVA日期格式化类 1.日期格式化类 java.text.SimpleDateFormat简单日期格式化 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J3dmn0m ...

  2. Java(六)——常用类 --- 日期和日历类

    Date 表示当前的日期对象,精确到毫秒值. java.util.Date类 构造方法 无参数构造方法 new Date() 有long型参数的构造方法 new Date(long 毫秒值) Date ...

  3. jsp日期格式化显示

    实例演示: <%@ page language="java" contentType="text/html; charset=UTF-8"pageEnco ...

  4. SpringMVC日期格式化

    一.关于SpringMVC日期的格式化大概可分为四点 1.@ResponseBody方式返回json的日期格式化 2.ajax方式返回json的日期格式化 3.数据保存时String转Date 4.页 ...

  5. AngularJS 日期格式化

    AngularJS 日期格式化 AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expre ...

  6. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  7. java日期格式精确到分_详解Java日期格式化及其使用例子

    Java日期格式化及其使用例子 1 SimpleDateFormat担当重任,怎样格式化都行 import java.util.Date; import java.text.SimpleDateFor ...

  8. 如何在Java 8中使用LocalDateTime格式化/解析日期-示例教程

    Java项目中的常见任务之一是将日期格式化或解析为String,反之亦然. 解析日期表示您有一个表示日期的字符串,例如" 2017-08-3",并且要将其转换为表示Java中日期的 ...

  9. 【Java基础系列教程】第十四章 Java 包装类、日期与日期格式化类、数值格式化等常用类详解

    一.包装类 1.1 什么是包装类 Java中的数据类型分为基本数据类型和引用数据类型,其中基本数据类型是不具有对象特征的,也就是说它们不能像对象一样拥有属性和方法,以及对象化交互.           ...

最新文章

  1. PLSQL developer 连接不上64位Oracle 解决办法
  2. 11年的计算机二级vf考试试题,2011年计算机等级考试二级VFP 辅助练习题及答案
  3. cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题
  4. DVWA--文件上传漏洞
  5. xxx.jar 中没有主清单属性
  6. Qt 设置当前窗口出现在左右窗口的最前面
  7. 如何评估深度学习模型效果?阿里工程师这么做 1
  8. python 获取向上两级路径_Python学习第171课--相对路径和绝对路径
  9. toj 4614 Infinite Dictionaries
  10. 找到dht网络的节点了
  11. 三维点云学习(3)4-Expectation-Maximization (EM)
  12. Android----Intent详解
  13. 线性变换与矩阵的一一映射
  14. 连上hdmi后没有声音。
  15. 邮件内容安全防护之反垃圾邮件开源软件ASSP
  16. React Native 每日一学(Learn a little every day)
  17. 旧版奥维 用 新地图 gmap 谷歌卫星图层
  18. 企业 Apple 设备管理概述
  19. matlab等高图采用对数坐标,用matlab画对数坐标图形
  20. 代码神器Sourse Insight配置 - IAR EWB超强力助手

热门文章

  1. SAP-MM-预留、寄售、外协(个人笔记)
  2. cPanel在手,建站无忧
  3. Turtle库入门案例:Python一键画出海绵宝宝小可爱!!
  4. Qt配置MySql数据库驱动(Windows)
  5. 买了个VR眼镜,体验一下元宇宙
  6. 【Rust日报】2023-01-07 shura-一个安全的2D 游戏引擎,易于创建易于管理的游戏
  7. C语言计算机二级/C语言期末考试 刷题(一)
  8. 学霸的计算机组成原理知识点清单
  9. 防火墙和NAT基础学习
  10. eol python 全称_EOL是什么意思