java中的 %d %n \n %f

java中,%d和%f分别用来表示输出时,替换整型输出和浮点型输出的占位符
如:

int a=28;
float b= 13.0f;
System.outprintf("整数是:%d%n,小数是:%f",a,b);

输出结果是:整数是:28
小数是:13.0
这里%n是换行的格式字符串,只能用在print输出语句中,而\n是回车字符,可以用在所有的字符串中。

### 正确使用 `%d-%d-%d` 格式的日期处理 在 Java 中,如果希望按照 `%d-%d-%d` 的格式来表示日期并进行占位符操作,则可以结合 `String.format()` 或者 `System.out.printf()` 方法完成。需要注意的是,在这种场景下,`%d` 并不直接用于日期类型的变量,而是需要先提取出日期中的年、月、日部分作为独立的整数值再进行格式化。 以下是具体实现方法: #### 使用 `SimpleDateFormat` 提取日期组件 通过 `java.text.SimpleDateFormat` 将日期解析为特定格式,并进一步提取其组成部分[^3]。 ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatExample { public static void main(String[] args) throws ParseException { String dateStr = "2023-06-07"; SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdfInput.parse(dateStr); // 创建一个新的SimpleDateFormat实例以提取各个字段 SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); // 获取年份 SimpleDateFormat sdfMonth = new SimpleDateFormat("MM"); // 获取月份 SimpleDateFormat sdfDay = new SimpleDateFormat("dd"); // 获取天数 int year = Integer.parseInt(sdfYear.format(date)); int month = Integer.parseInt(sdfMonth.format(date)); int day = Integer.parseInt(sdfDay.format(date)); System.out.printf("%d-%d-%d%n", year, month, day); // 输出:2023-06-07 } } ``` 上述代码展示了如何利用 `SimpleDateFormat` 解析字符串形式的日期,并将其分解成年、月、日三个部分后再用 `%d-%d-%d` 进行格式化输出[^1]。 --- #### 结合 Python 实现类似的日期格式化功能 对于 Python 用户来说,可以通过内置库 `datetime` 来完成相似的任务[^2]。 ```python from datetime import datetime date_str = "2023-06-07" date_obj = datetime.strptime(date_str, "%Y-%m-%d") # 转换为日期对象 year = date_obj.year month = date_obj.month day = date_obj.day print(f"{year}-{month:02d}-{day}") # 输出:2023-06-07 ``` 这里的关键在于将原始日期字符串转化为 `datetime` 对象后分别访问 `.year`, `.month`, 和 `.day` 属性,最后拼接成目标格式。 --- #### 关于 SQL 参数化的注意事项 当涉及到数据库查询时,推荐采用预编译语句 (Prepared Statements),这样不仅可以提高效率还能有效防止 SQL 注入攻击。例如下面展示了一个基于 JDBC 的例子,其中也包含了日期参数传递的方式: ```java PreparedStatement pstmt = connection.prepareStatement( "SELECT * FROM my_table WHERE created_at BETWEEN ? AND ?"); pstmt.setDate(1, new java.sql.Date(startDate.getTime())); pstmt.setDate(2, new java.sql.Date(endDate.getTime())); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { ... } // 处理结果集 ``` 此片段中演示了怎样安全地向 SQL 查询注入两个日期范围条件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值