SimpleDateFormat、DecimalFormat

本文深入探讨了Java中日期格式化与数值格式化的具体应用,包括常用的日期格式符号及数值格式化规则,并通过示例代码展示如何进行日期与数值的格式化。

SimpleDateFormat日期格式化

日期格式化是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)语法分析 (text -> date)标准化

  G 年代标志符:
  y 年
  M 月
  d 日
  h 时 在上午或下午 (1~12)
  H 时 在一天中 (0~23)
  m 分
  s 秒
  S 毫秒
  E 星期
  D 一年中的第几天
  F 一月中第几个星期几
  w 一年中第几个星期
  W 一月中第几个星期
  a 上午 / 下午 标记符 
  k 时 在一天中 (1~24)
  K 时 在上午或下午 (0~11)
  z 时区

如:

SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss");
String time = format.format(new Date());


DecimalFormat十进制数格式化

符号含义: 

0 一个数字 

# 一个数字,不包括 0 

. 小数的分隔符的占位符 

, 分组分隔符的占位符 

; 分隔格式。 

- 缺省负数前缀。 

% 乘以 100 和作为百分比显示 

? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符。 

X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。


如:

DecimalFormat decimalFormat = new DecimalFormat("000000");

decimalFormat.format(123);

格式化后为:000123

1、模拟超市购物流程,设计商品类Goods,定义各类商品子类继承Goods父类,设计购物车接口IShoppingCart,封装对商品链表的操作,包括添加商品、移除商品等,并设计购物车类ShoppingCart实现购物车接口,在类中通过定义构造方法创建商品链表,并覆写toString()方法用于购物车内商品信息的字符串表示统计。 2、每个用户进入收银环节会产生一笔交易,为每笔交易添加流水号(可设置为ShoppingCart的成员变量)。每一笔交易都包含一个序号,该序号称为流水号,流水号中包含了许多信息,假设某家超市的流水号格式为yyyyMMdd****,如202003300001(时间取当天日期,年4位,月2位,日2位,序号4位),表示该超市2020年3月30日第一笔销售记录。 3、编写一个Java收银系统,循环依次输入商品名称,商品单价,销售数量等信息(每项之间以,分割,当输入0000时结束收银), 如输入 牙膏,2,2 香烟,3,20 矿泉水,10,1.5 0000 输出如下格式的销售明细: 交易流水号:202003300001 商品名称 商品数量 单价 总价 牙膏 2 2 4 香烟 3 20 60 矿泉水 10 1.5 15 总计: 销售笔数 3,销售数量 15,销售金额79 同理,第二笔交易流水号为:202003300002 4、编写测试类,建立两笔交易(可用输入是否继续收银Y/N控制循环收银),从键盘按上述格式录入商品信息,输出指定格式的购物信息。 提示:1、DecimalFormat df=new DecimalFormat("0000"); df.format(xh) //将xh转换为四位的序号--当序号位数不足四位时补齐左侧0 DecimalFormat df=new DecimalFormat("#.00"); df.format(total) //total保留小数点后两位 Date date=new Date();//取当前时间 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); String d=sdf.format(date);//将当前时间的年月日格式化为字符串"20231108" 2、拆分输入的字符串“牙膏,2,2”,可使用split(","),返回字符串数组{“牙膏”,“2”,“2”},此处单价数量为字符串类型,需分别转换为floatfloat类型后再进行运算 3、循环输入数据时,使用到ArrayList<Goods>,一行数据对应实例化一个商品对象
最新发布
10-19
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值